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 :

affichage d'un combo suite à la selection d'un option d'un autre combo.


Sujet :

JavaScript

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Points : 193
    Points
    193
    Par défaut affichage d'un combo suite à la selection d'un option d'un autre combo.
    Bonjour tout le monde

    Je souhaiterais que le select appart s'affiche quand Appartement de select logement est selectionné.

    Voici les codes


    style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <style type="text/css">
    select.hide { 
    visibility:hidden;
    display:none;
    }
    select.show {
    visibility:visible;
    display:;
    }
     
    </style>
    Le select logement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <SELECT name="logement" id="btnRecherche" onchange="document.getElementById('cbb1').className='show'">
     
    <option style="background-color:yellow">-Type de logement-</option>
     
    <option style="background-color:yellow">Maison</option>
     
    <option style="background-color:yellow">Appartement</option>
    </SELECT>

    Quand on selectionne Appart du combo logement, le combo appart dois s'afficher.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <SELECT  id="cbb1" name="appart" class="hide">
     
    <option style="background-color:yellow">-type appart-</option>
    <option style="background-color:yellow">t1</option>
    </SELECT>
    Je ne vois pas comment réaliser la fonction.

    Merci

    A +

  2. #2
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    Ouah tu te casses la tête là.

    Ton premier SELECT, celui qui fera apparaitre l'autre:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <select name="liste1" id="liste1" onchange="afficher();">
        <option>[...]</option>
    </select>

    Le second:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <select name="liste2" id="liste2" style="display: none;">
        <option>[...]</option>
    </select>

    Le code javascript relié à ton premier SELECT:
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function afficher() {
        if(document.getElementById("liste1").value = 1) {
            document.getElementById("liste1").display = '';
        } else {
            document.getElementById("liste1").display = 'none';
        }
    }

    ça devrait le faire

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    c'est comme tu l'as fais côté JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <SELECT name="logement" id="btnRecherche" onchange="document.getElementById('cbb1').className='show'">
    Mais pour le CSS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select.show {
    visibility:visible;
    display:block;
    }
    Tu n'as pas besoin des styles visibility ET display : choisis un des 2

    A+

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par gwinyam Voir le message
    Ouah tu te casses la tête là.
    Pas vraiment : c'était presque bon

    A+

  5. #5
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    Ouais c'est presque pareil, si on chipote à la ligne de code

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par gwinyam Voir le message
    Ouais c'est presque pareil, si on chipote à la ligne de code
    A propos de chipotter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("liste1").style.display = 'none';
    Et sinon, les value sont toujours de type caractère et non numérique (comme dans ton exemple) ...

    A+

  7. #7
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    Ah ouais pas faux. Erreur de jeunesse

  8. #8
    Débutant  
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Points : 193
    Points
    193
    Par défaut
    Bonjour tout le monde

    Je repete, il y a deux options appartement et maison.

    Je souhaite que le deuxieme select s'affiche que on choisi appartement pas maison.

    Avez vous compris?

    Merci

    A +

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par argon Voir le message
    Je souhaite que le deuxieme select s'affiche que on choisi appartement pas maison.

    Avez vous compris?
    Pas sûr, vu le caractère approximatif de cette ... phrase

  10. #10
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    Je t'ai fourni un modèle de fonctionnement. A partir de cela tu as juste à changer la condition dans la fonction javascript pour que cela fonctionne.

    La solution de E.Bzz respecte le plus l'idée que tu avais au départ, tu as juste à introduire une condition pour que cela affiche la deuxième si l'on sélectionne seulement l'un des deux.

    Si c'est pas ça que t'attendais ta question, se référer à :
    Citation Envoyé par E.Bzz Voir le message
    Pas sûr, vu le caractère approximatif de cette ... phrase

  11. #11
    Débutant  
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Points : 193
    Points
    193
    Par défaut
    Bonjour tout le monde

    Voici ce que j'ai fais.

    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
     
     
    <SCRIPT type="text/javascript" LANGUAGE="javaScript">
     
     
    function afficher() {
        if(document.getElementById("logement").value = "Appartement") {
            document.getElementById("logement").display = '';
        } else {
            document.getElementById("logement").display = 'none';
        }
    }
     
     
     
    </script>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <style type="text/css">
    select.show {
    visibility:visible;
    display:block;
    }
    Rien ne s'affiche.

    Pourquoi?


    A +

  12. #12
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Bonjour,
    1 - Tu dois mettre "==" à la place de "=" quant tu veux savoir si la valeur de ton "select" 'logement' est égale à "Appartement",
    2 - Dans ta fonction tu essayes de modifier le "select" ayant l'id "logement" et non celui ayant l'id "cbb1",
    3 - Si tu veux modifier le style il faut utiliser "className" (comme tu l'avais fait au départ),
    Ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <SCRIPT type="text/javascript" LANGUAGE="javaScript">
    function afficher() {
        if(document.getElementById("logement").value == "Appartement") {
            document.getElementById("cbb1").className = "show";
        } else {
            document.getElementById("cbb1").className = "hide";
        }
    }
    </script>
    Ensuite rajoute des "value" aux options de tes "selects", comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <SELECT name="logement" id="btnRecherche" onchange="afficher()">
    <option style="background-color:yellow" value="Type">-Type de logement-</option>
    <option style="background-color:yellow" value="Maison">Maison</option>
    <option style="background-color:yellow" value="Appartement">Appartement</option>
    </SELECT>

  13. #13
    Débutant  
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Points : 193
    Points
    193
    Par défaut
    Rebonjour

    Désolé, je suis perdu, le combo ne s'affiche, je pense que le probléme vient du style.

    Voici actuellement les codes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <SELECT name="logement" id="logement" onchange="afficher();">
     
    <option style="background-color:yellow">-Type de logement-</option>
     
    <option style="background-color:yellow" value="Maison">Maison</option>
     
    <option style="background-color:yellow" value="Appartement" >Appartement</option>
    </SELECT>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <select id="appart" name="appart" class="hide">
     
    <option style="background-color:yellow">-type appart-</option>
    <option style="background-color:yellow" value="t1">t1</option>
    style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    <style type="text/css">
     
    select.show {
    visibility:visible;
    display:;
    }
    Merci

    A +

  14. #14
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Il faudrait voir à ne pas modifier sans cesse les informations de tes selects:
    Tu indiques une première fois l'id "cbb1" et maintenant tu indiques une autre id "appart".
    Vérifie bien dans ta fonction que tu désires modifier la "className" de l'élément ayant l'id "appart" ...

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

Discussions similaires

  1. [PHP-JS] Affichage d'une galerie via un select.
    Par mLk92 dans le forum Langage
    Réponses: 9
    Dernier message: 26/07/2006, 17h24
  2. [PHP-JS] Combos suite autre pb(plutot conseil)
    Par zoreil dans le forum Langage
    Réponses: 3
    Dernier message: 12/07/2006, 16h19
  3. Modification d'une combo suite à la saisi dans un champ texte
    Par GabriHell dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/05/2006, 17h48
  4. interaction sur des combo suite à un evenement
    Par stela86 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 02/05/2006, 17h17
  5. [affichage d'une image] suite et fin
    Par mavina dans le forum 2D
    Réponses: 3
    Dernier message: 31/12/2005, 00h15

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