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 :

Superposition de listes déroulantes


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 7
    Par défaut Superposition de listes déroulantes
    Bonjour,

    je souhaiterais trouver un moyen simple de superposer une liste déroulante.
    Le but est d'afficher telle ou telle liste selon l'item sélectionné dans une précédente liste.

    EX:
    Liste1 (mammifère, oiseaux, ...)
    Liste2 (chien, chat, ours, ...)
    Liste3 (mésange, rouge-gorge, roitelet, ...)

    Si dans liste1 "mammifère" est sélectionné, je dois afficher la liste2, si c'est "oiseaux", je dois afficher la liste3 à la place de la 2 (au même endroit !!)

    Je ne sais absolument pas comment faire. Si vous avez une quelconque idée ... Merci.

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 212
    Par défaut
    Bonjour,
    ton problème est un problème de liste déroulante liées entre elles, voilà pour les mots clés.

    Comment lier deux listes déroulantes entre elles ?

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 7
    Par défaut
    Bonjour,

    merci pour la réponse et le lien.

    J'ai lu la FAQ, mais pour cette solution il est nécessaire d'adapter la base de données, or je ne peux pas le faire. Ma base de données est existante, et je dois l'utiliser telle quelle pour construire mes listes déroulantes.

    Je pencherais plus pour une solution basée sur l'affichage d'une liste ou une autre selon l'item sélectionné (c'est dans ce sens que je parlais de "superposition de listes"). J'ai vaguement regardé du côté des z-index, mais je ne n'ai rien trouvé de concluant.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Le tuto n'est qu'un exemple, tu n'as nullement besoin d'adapter ta base de données ...

    regarde plutot du coté de ajax, voire même jquery qui propose un plugin de listes liées ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 7
    Par défaut
    Le soucis c'est que je débute complètement.
    J'ai déjà du me farcir le HTML, le CSS, le PHP, le MySQL, le Javascript et je pensais que ce serais suffisant.
    Ça m’ennuie de devoir encore essayer d'apprivoiser l'ajax ou le jquery, alors que je suis encore loin de maîtriser les autres langages.
    N'y a t-il pas d'autre choix ...!??

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 212
    Par défaut
    Si tu ne veux pas de donner la peine et que les données sont peu nombreuses tu peux créer tes SELECTs et les masquer, display:none par exemple, il te suffit ensuite de les afficher à la demande sur le onchange du SELECT principal.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 7
    Par défaut
    Oui c'est ce que j'aimerais faire, le soucis c'est que j'aimerais que les différentes listes soient au même endroit.
    Je ne suis pas sur qu'on puisse le faire avec l'option display.

    Par ailleurs j'ai un peu cherché des infos sur les liste liées. Je confirme que cela ne correspond pas mon pb, j'ai oublié de préciser que selon le champ sélectionné dans ma 1ère liste, je dois afficher (ou non) d'autre listes, toutes issues d'autres tables n'ayant aucun lien avec ma 1ère liste.

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 212
    Par défaut
    ...les différentes listes soient au même endroit.
    effectivement display dans ce cas ne peut rien pour toi car il s'agit de positionnement

    Je confirme que cela ne correspond pas mon pb, j'ai oublié de préciser que selon le champ sélectionné dans ma 1ère liste, je dois afficher (ou non) d'autre listes, toutes issues d'autres tables n'ayant aucun lien avec ma 1ère liste.
    Le fond du problème est identique.

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 7
    Par défaut
    Oui peut-être. Je continu mes recherches ...
    Mais si quelqu'un a une solution simple, je suis preneur !!

  10. #10
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 212
    Par défaut
    Une solution simple est de créer tout tes SELECTs et de les masquer, tiens il me semble l'avoir déjà écris
    exemple :
    Code html : 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
    <select>
      <option value="">Votre choix</option>
      <option value="id_un">UN</option>
      <option value="id_deux">DEUX</option>
      <option value="id_trois">TROIS</option>
    </select>
    <select id="id_un">
      <option value="">UN UN</option>
      <option value="">UN DEUX</option>
      <option value="">UN TROIS</option>
    </select>
    <select id="id_deux">
      <option value="">DEUX UN</option>
      <option value="">DEUX DEUX</option>
      <option value="">DEUX TROIS</option>
    </select>
    <select id="id_trois">
      <option value="">TROIS UN</option>
      <option value="">TROIS DEUX</option>
      <option value="">TROIS TROIS</option>
    </select>
    ...et les masquer, display:none par exemple,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // récup. des SELECTs concernés
    var oSelect = document.getElementsByTagName('SELECT'),
        nbSelect = oSelect.length;
    // on laisse le premier apparaître
    for( var i=1; i <nbSelect;i++){
      oSelect[i].style.display = 'none';
    }
    ...il te suffit ensuite de les afficher à la demande sur le onchange du SELECT principal.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    oSelect[0].onchange = function(){
      for( var i=1; i <nbSelect;i++){
        oSelect[i].style.display = oSelect[i].id == this.value ? '' : 'none';
      }
    };
    on se sert de la value de celui ci, qui représente l'ID, pour atteindre et rendre visible le SELECT concerné.

    Mais si quelqu'un a une solution simple, je suis preneur !!
    il me semble que c'est le cas !!

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 7
    Par défaut
    OK, mais on est bien d'accord que dans ce cas là, les listes (visibles ou non) sont affichées à des endroits différents.
    Mon souhait serait qu'elles le soient au même.

  12. #12
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 252
    Par défaut
    Si tu souhaite que le seconde liste remplace la première lors du choix il te suffit alors de masquer la première pour que la seconde apparaisse au même endroit. Ce ne devrait pas être difficile à faire avec le code fournit.

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 7
    Par défaut
    T'as raison numew, je me suis trompé.
    Merci NoSmoking, ça marche nickel. C'est exactement ce que je voulais.

    Par contre je ne sais pas comment on clôture la discussion en "résolu".... (je débute dans tout, la prog et les forums )

    ...


    wouahou , je viens de voir le bouton !! Je clôture donc ...

    Merci à tous.

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

Discussions similaires

  1. Superposition de listes déroulantes dynamiques ajax
    Par Yelloz dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 28/05/2009, 10h23
  2. liste déroulante
    Par leeloo076 dans le forum ASP
    Réponses: 12
    Dernier message: 23/03/2004, 10h35
  3. liste déroulante avec session
    Par leeloo076 dans le forum ASP
    Réponses: 3
    Dernier message: 19/03/2004, 11h01
  4. liste déroulante en ASP vbscript
    Par leeloo076 dans le forum ASP
    Réponses: 9
    Dernier message: 17/03/2004, 16h42
  5. Listes déroulantes liées entre elles
    Par denisC dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/07/2002, 15h53

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