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 :

Cacher/Afficher des éléments en fonction d'un choix dans une liste déroulante


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 76
    Points : 57
    Points
    57
    Par défaut Cacher/Afficher des éléments en fonction d'un choix dans une liste déroulante
    Bonjour,

    Alors mon problème ici est que je veux selon le choix fait dans la liste afficher ou non les 2 derniers echos
    Pour être plus précis, le champ "local" de la table "appareil" correspond à un booléen oui/non et quand on sélectionne un appareil en fonction de son libellé apparaissant dans la liste déroulante, si c'est oui qui correspond à cet appareil, on laisse afficher l'écriture "position du local" ainsi que son champ de saisie et c'est non, on cache l'écriture et le champ de saisie.

    Donc une fois de plus, je pense que le onchange fera l'affaire sur la liste mais je suis toujours mauvais syntaxiquement parlant


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    echo '<select name="select_type_appareil">';	
                 // On récupère tous les choix possibles
                 $req_type_app = mysql_query("select num_type_appareil, lib_type_appareil, local from appareil order by num_type_appareil ASC;");	
                while ($res_type_app = mysql_fetch_array($req_type_app))
    	{ 
    	             echo '<option value="'.$res_type_app[0].'">'.$res_type_app[1].'</option>'; 
    	}
    echo '</select>';	
     
    echo '&nbsp;&nbsp; Position du local : &nbsp;&nbsp;';
    echo '<input type="text" name="position_local" value="'.$position_loc.'">';

  2. #2
    Invité
    Invité(e)
    Par défaut
    salut,

    commence par englober
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    '&nbsp;&nbsp; Position du local : &nbsp;&nbsp;';
    '<input type="text" name="position_local" value="'.$position_loc.'">';
    par un paragraphe par exemple.
    avec les guillemets et tout comme il faut...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <p id="pFacultatif">
    '&nbsp;&nbsp; Position du local : &nbsp;&nbsp;';
    '<input type="text" name="position_local" value="'.$position_loc.'">';
    </p>
    Ensuite, il faudra juste cacher p ou pas en fonction du choix du gars.
    Coté js, tu fais un truc qui ressemble à ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var select = document.getElementsByTagName('select')[0];//pour chopper le select si c'est le seul dans la page. C'est mieux de mettre un id qu'un name, pour qu'on puisse utiliser getElementById tranquillou histoire qu'on soit pas que sous IE ... lol
    select.onchange=function(){
     var p = document.getElementById('pFactultatif');
     if(this.value=='oui'){
      //on cache le paragraphe
      p.style.display = '';//valeur qq pour rafficher p
     }else{
      p.style.display = 'none';//valeur a none pour le cacher
     }
    };
    Aux erreurs de la syntaxe...

  3. #3
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 76
    Points : 57
    Points
    57
    Par défaut rép
    Bonjour,
    merci pour ta réponse mais j'ai encore quelques soucis.
    D'une, ca ne marche pas, j'ai du me planter dans la syntaxe quelque part :'(
    De deux, lors de l'adaptation de ta solution, je ne garde plus en mémoire dans ma liste déroulante le numéro de l'appareil pour garder à la plus la valeur 'oui' ou 'non' ce qui ne m'arrange pas du tout

    Donc voici ton code que j'ai essayé d'adapter et qui ne marche pas :

    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
     
    <head>
    <script>
    var select = document.getElementsByTagName('select_type_appareil');
    select.onchange = function()
    {
    var p = document.getElementById('test');
    if (this.value=='oui') //on cache le paragraphe
    {				
    	p.style.display = '';//valeur qq pour rafficher p
    }
    else
    {
    	p.style.display = 'none';//valeur a none pour le cacher
    }
    }
    ...

  4. #4
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 76
    Points : 57
    Points
    57
    Par défaut
    Désolé pour le double post, je n'arrivais meme pas à écrire les lignes ci-dessous dans le message précédent

    EDIT : je n'arrive pas a poster la suite. J'ai le meme pb qu'avant, pour poster le bout de code ci dessus, j'ai copié/collé les lignes 1 par 1 et je n'ai pas pu copier la ligne du </script>

  5. #5
    Invité
    Invité(e)
    Par défaut
    re,

    voici un code qui 'marche'
    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
    <html>
     <body>
      <select>
       <option value="oui">Oui</option>
       <option value="non">Non</option>
      </select>
      <p id="toHide">
       J'aime la viande
      </p>
    <script type="text/javascript">
    var select= document.getElementsByTagName('select')[0];//important le [0], spour dire qu'on prend le premier select trouvé!
    select.onchange = function(){
     var p = document.getElementById('toHide');
     if(this.value=='oui') p.style.display='';
     else p.style.display = 'none';
    }
    </script>
    </body>
    </html>
    tu peux l'adapter...

  6. #6
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 76
    Points : 57
    Points
    57
    Par défaut
    Merci galérien mais j'ai trouvé entre temps une autre solution pas belle du tout mais qui marche au moins

    Le [0], j'avais compris son utilité et je l'avais enlevé parce que c'était une de mes listes déroulantes parmis la trentaine sur la page en faite

    Sinon, je poste pas ce que j'ai fais parce que ca marchera pas mais je met le post en résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/05/2014, 12h00
  2. Réponses: 2
    Dernier message: 22/02/2012, 01h03
  3. Réponses: 3
    Dernier message: 23/06/2010, 11h41
  4. Réponses: 0
    Dernier message: 09/09/2008, 21h53
  5. Rafraichir un formulaire en fonction d'un choix dans une liste déroulante
    Par talondachil dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/01/2008, 23h17

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