IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

fonction javascript pour bloquer un bouton suivant la selection d'un menu déroulant


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 31
    Points
    31
    Par défaut fonction javascript pour bloquer un bouton suivant la selection d'un menu déroulant
    Salut, il me faudrait une fonction javascript qui puisse me bloquer un bouton d'un formulaire suivant ce que j'ai selectionné dans une liste déroulante.

    EXPLICATION:

    J'ai un menu déroulant ou je selectionne des ligne de production (2755,2776,....).
    J'ai également un bouton "nouvelle production à la fin du formulaire" qui doit etre grisé si certaines lignes sont selectionné.

    Les lignes interdites sont selectionnable dans la base de donnée car elles ont un champ interdit=X. Les autres lignes n'ont rien dans ce champ

    Mon problème est que je ne connait pas le javascript et la vu que c'est une modification dynamique, il me faudrait une fonction javascript je pense


    Merci de m'aider, c'est très urgent ...

  2. #2
    Membre éclairé Avatar de Sheriff
    Inscrit en
    Octobre 2004
    Messages
    608
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 608
    Points : 718
    Points
    718
    Par défaut
    salut !
    il faut appliquer un nom à tes boutons et faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomdubouton.style.display='none'
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementbyid('iddubouton').style.display='none'
    avec id=iddubouton
    En résumé, la propriété display te permet de gérer tout ça...
    display='none' a pour contraire display='block'.
    tu peux aussi utiliser la propriété visibility
    visibility='hidden' a pour contraire visibility='visible'
    @+
    Que votre situation soit bonne ou mauvaise, cela va changer...

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 31
    Points
    31
    Par défaut
    Merci, mais est ce que tu pourrais pas m'aider un peu plus.

    Par exemple ma requete est:
    La je selectionne mes lignes interidte qui doit bloquer les boutons
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $req_lignes="SELECT ligne_nom FROM ligne WHERE ligne_bde = 'X'";
      $result_lignes=mysql_query($req_lignes);
      $ligne_interdite=mysql_fetch_array($result_lignes);
      $nbre_lignes=mysql_num_rows($result_lignes);
    mon formulaire s'apelle frm.
    La ligne selectionné est ligne_p.
    les boutons a désactivers sont nouvelle_prod et prod_saisie.

    En plus, il faudrait que je puisse comparer la ligne selectionnée à toute ligne interdite.

    j'ai déjà essayé en faisant ça avant que tu me réponde mais ca n'a pas marché:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    function bloquer_prod()
    {
     var ligne_select;
     ligne_select=document.frm.ligne_p.selectedIndex;
     <?
      // selection des lignes interdites
      $req_lignes="SELECT ligne_nom FROM ligne WHERE ligne_bde = 'X'";
      $result_lignes=mysql_query($req_lignes);
      $ligne_interdite=mysql_fetch_array($result_lignes);
      $nbre_lignes=mysql_num_rows($result_lignes);
      $i=0;
      while($ctItem1=mysql_fetch_array($result_lignes))
      {
       $tab_li[$i]=$ctItem1['ligne_nom'];
       echo"(if(ligne_select='".$tab_li[$i]."') {\n";
       echo"document.frm.nouvelle_prod.disabled }";
          $i++;
      }
     ?>
    }

  4. #4
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 31
    Points
    31
    Par défaut
    En fait c'est juste le bouton nouvelle_prod que je dois désactiver

  5. #5
    Membre éclairé Avatar de Sheriff
    Inscrit en
    Octobre 2004
    Messages
    608
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 608
    Points : 718
    Points
    718
    Par défaut
    ok...
    si je comprends bien nouvelle_prod c'est un bouton ?
    dans ce cas tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.frm.nouvelle_prod.style.visibility='hidden'
    @+
    Que votre situation soit bonne ou mauvaise, cela va changer...

  6. #6
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 31
    Points
    31
    Par défaut
    Merci , ca m'a bocoup servi, j'ai réussi à desactiver le bouton lorsque je selectionne une ligne.

    Maintenant il faut que je réussissent à descativer ce bouton seulement lorsque je selectionne que certaines lignes d'où mon besoins de requete dans ma fonction javascript :
    voila mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    function bloquer_prod()
    {
        code = document.frm.ligne_p.selectedIndex;
        <?
      // selection des lignes interdites
      $req_lignes="SELECT ligne_nom FROM ligne WHERE ligne_bde = 'X'";
      $result_lignes=mysql_query($req_lignes);
      $ligne_interdite=mysql_fetch_array($result_lignes);
      $nbre_lignes=mysql_num_rows($result_lignes);
      $i=0;
      while($ctItem1=mysql_fetch_array($result_lignes))
      {
       $tab_li[$i]=$ctItem1['ligne_nom'];
          $i++;
      }
      $j=0;
      for($j=0;$j<$nbre_lignes;$j++)
      {
          if(code==$tab_li[$j])
          {
              document.frm.nouvelle_prod.disabled=true;
          }
          else
          {
              document.frm.nouvelle_prod.disabled=false;
          }
      }
     ?>
    }
    Mon problème est que j'intègre du php dans ma fonction javascript. Mais dans le code php j'arrive plus à distinguer les variables javascript des variables php .

    ex dans mon if
    code est une variable javascript
    tab_li est un tableau php

    Comment différencier ????

    Quelqu'un pourrait m'aider svp ???

  7. #7
    Membre éclairé Avatar de Sheriff
    Inscrit en
    Octobre 2004
    Messages
    608
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 608
    Points : 718
    Points
    718
    Par défaut
    il n'y a aucun problème (lors de la génération du code tu mets $variable lorsqu'il s'agit d'une variable php) puisque les variables js sont vues par le php comme du simple texte, le echo "variable" ne gêne pas du tout (car dans ce cas variable est une variable js).
    puisque le php génère le code javascript tu t'arrange juste à ne pas faire de confusions
    Que votre situation soit bonne ou mauvaise, cela va changer...

  8. #8
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 31
    Points
    31
    Par défaut
    voila mon nouveau code:
    j'ai essayé de reprendre des éléments de fonctions déjà existante que j'ai récupéré :

    [CODE]
    function bloquer_prod()
    {
    code = document.frm.ligne_p.selectedIndex;
    <?
    // selection des lignes interdites
    $req_lignes="SELECT ligne_nom FROM ligne WHERE ligne_bde = 'X'";
    $result_lignes=mysql_query($req_lignes);
    $ligne_interdite=mysql_fetch_array($result_lignes);
    $nbre_lignes=mysql_num_rows($result_lignes);
    $i=0;
    while($ctItem1=mysql_fetch_array($result_lignes))
    {
    $tab_li[$i]=$ctItem1['ligne_nom'];
    echo "if (document.frm.ligne_p.options
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    .value == \"".$tab_li[$i]."\") {\n";
       echo "document.frm.nouvelle_prod.disabled = true }";
          echo "else {";
          echo "document.frm.nouvelle_prod.disabled = false }";
          $i++;
      }
     ?>
    }
    Ce code fonctionne mais seulement pour la dernière ligne du tableau.
    Par exemple ma requete renvoi 3 lignes de production interdite.
    2673
    2674
    2757
    Mais le blocage fonctionne seulement lorsque je selectionne la dernière qui est dans le tableau, 2757, renvoyé par mysql_fetch_array et je sais pas pourkoi...

    Tu saurais pas par hasard en regardant le code.

    En que signifie exactement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.frm.ligne_p.selectedIndex
    [CODE]
    document.frm.ligne_p.optionsd'après ce que j'ai compris le deuxième code stoque la valeur de la ligne selectionné mais l'autre ??

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/03/2010, 13h49
  2. Menu css ok sur IE8 --> fonction javascript pour IE6
    Par Invité dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/04/2009, 08h20
  3. Fonction JavaScript pour récupérer le numéro de semaine
    Par mrjeronimo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/08/2008, 13h56
  4. procedure pour bloquer des boutons
    Par Aos dans le forum Delphi
    Réponses: 41
    Dernier message: 30/04/2007, 18h58
  5. fonction javascript pour tout cocher
    Par Flob dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/02/2005, 10h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo