Partage
  • Partager sur Facebook
  • Partager sur Twitter

Liste déroulante

    7 avril 2009 à 10:34:02

    Bonjour,
    Je suis débutant en javascript et j'aimerais savoir si il est possible d'afficher une liste déroulante en plus dans un formulaire en cliquant sur un lien
    Si cela est possible j'aimerais savoir comment et après comment récupérer ces valeurs
    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      7 avril 2009 à 10:45:11

      Tu peux faire ça très simplement en mettant d'avances une liste en display none ; que tu affiches lors du clic.

      <!-- Une liste pour faire joli. Elle ne sert à rien ici... -->
      <select id="liste" name="liste">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      </select>
      
      <!-- Un bouton, avec appel d'une fonction JS au clic -->
      <button type="button" onclick="apparition()">Tadaaa !</button>
      
      <!-- Une liste cachée... On note l'id="yop" qui va nous servir -->
      <select id="yop" name="yop" style="display:none;">
      <option value="yopyop">Yop yop</option>
      <option value="yipyip">Yip yip</option>
      <option value="yapyap">Yap yap</option>
      </select>
      
      <script type="text/javascript">
      function apparition() { // déclaration de la fonction
        var liste = document.getElementById("yop"); // On récupère la liste cachée grâce à son ID
        if(liste.style.display != "block") { // Si elle est masquée
          liste.style.display = "block"; // On l'affiche
        } else { // Sinon
          liste.style.display = "none"; // On la masque
        }
      }
      </script>
      
      • Partager sur Facebook
      • Partager sur Twitter
        7 avril 2009 à 10:49:56

        Le probleme c'est qui peut y en avoir 50 de listes déroulantes!!!
        • Partager sur Facebook
        • Partager sur Twitter
          7 avril 2009 à 11:51:53

          Donne un petit exemple de départ peut-être... on pourrait te donner 3000 codes et ça pourrait ne jamais correspondre à ce que tu veux... il y aurait quoi dans la nouvelle liste déroulante ?
          • Partager sur Facebook
          • Partager sur Twitter
            7 avril 2009 à 11:56:15

            Ben en fait je demande si des pièces sur une voiture ont été changés et si il y en a plusieurs il faut ke kan on clique sur un liens une nouvelle liste déroulante apparaisse avec une requete du style "SELECT * FROM DEPENSE" et il faut que sa marche à l'infini ou 50 fois maximum
            • Partager sur Facebook
            • Partager sur Twitter
              7 avril 2009 à 12:17:16

              Dans ces cas là, il vaudrait peut-être mieux utiliser le DOM pour créer les listes...
              Et avec un name="truc_machin[]", tu devrais pouvoir récupérer les infos dans un Array, côté PHP je crois.
              • Partager sur Facebook
              • Partager sur Twitter
                7 avril 2009 à 12:19:51

                Et ça marche comment sa????
                • Partager sur Facebook
                • Partager sur Twitter
                  7 avril 2009 à 13:15:41

                  <!-- Un div qui contient tout pour savoir où insérer les listes... -->
                  <div id="formulaire">
                  <!-- Un bouton, avec appel d'une fonction JS au clic -->
                  <button type="button" onclick="creer_liste()">Créer nouvelle liste</button>
                  </div>
                  <script type="text/javascript">
                  function creer_liste() { // Déclaration de la fonction
                    var conteneur = document.getElementById("formulaire"); // On récupère le div conteneur
                    var opts = ["portière","pare-brise","pot"]; // On liste les options de la future liste dans un tableau
                    var new_l = document.createElement("select"); // On crée un élément <select>
                    new_l.name = "truc_machin[]"; // On lui donne un name (avec []) pour simplifier la récupération en PHP
                    for(var i=0,l=opts.length;i<l;i++) { // On fait une boucle sur les éléments du tableau
                      var new_o = document.createElement("option"); // Pour chacun, on crée un élément <option>
                      new_o.value = opts[i]; // On indique son value
                      new_o.innerHTML = opts[i]; // Et son contenu
                      new_l.appendChild(new_o); // Et enfin on l'insère dans le <select>
                    }
                    conteneur.appendChild(new_l); // On insère finalement le <select> dans le div conteneur
                  }
                  </script>
                  
                  • Partager sur Facebook
                  • Partager sur Twitter
                    7 avril 2009 à 13:41:41

                    le problème c'est que mon resultat est dans une requete sql!!!!
                    • Partager sur Facebook
                    • Partager sur Twitter
                      7 avril 2009 à 13:49:58

                      Quel résultat ? Le contenu de la liste à créer ?

                      Bah tu sais faire du PHP non ?

                      Il te reste plus qu'à écrire le tableau JS avec du PHP ! >_<
                      • Partager sur Facebook
                      • Partager sur Twitter
                        7 avril 2009 à 16:18:50

                        Du php sa va jc en faire mais mélangé php et js la ça devient cho!
                        • Partager sur Facebook
                        • Partager sur Twitter
                          7 avril 2009 à 19:16:06

                          C'est pourtant tout aussi simple que d'écrire de l'HTML en PHP ! >_<

                          Ton but, c'est d'écrire :
                          'var opts = ["portière","pare-brise","pot"];'
                          (en remplaçant les valeurs par celles de ta BDD je crois).

                          Bref, construction d'une chaîne en PHP à l'aide d'une boucle, ça devrait pas trop poser de problème, si ?
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Liste déroulante

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown