Partage
  • Partager sur Facebook
  • Partager sur Twitter

Remplir un champ automatiquement

Sujet résolu
    30 avril 2009 à 15:58:09

    Bonjour,
    Je commence a peine a lire les cours javascript, mais j'ai un truc a faire et j'y arrive pas.
    Je voudrai qu'un champ se remplice en fonction d'un choix que l'on fait dans une liste ... J'ai essayer pas mal de truc mais bon ...

    Champ a remplir auto
    <input type="text" name="non_complet" value=""/>
    


    Liste 1
    <select name="marque">
    <option value="">Marque</option>
    <option value=""></option>
    <option value="AMD">AMD</option>
    <option value="Intel">Intel</option>
    </select>
    


    Liste 2

    <select name="model">
    <option value="">Model</option>
    <option value=""></option>
    <option onclick="mod()" value="Athlon">Athlon</option>
    <option value="Athlon_64">Athlon 64</option>
    <option value="Athlon 64 X2">Athlon 64 X2</option>
    <option value="Athlon 64-FX">Athlon 64-FX</option>
    <option value="Athlon MP">Athlon MP</option>
    ......
    </select>
    


    Et J'aimerai que dans le champ a remplir, on aie par exemple "ADM Athlon 64 X2"

    Pas moyen de trouver, si quelqu'un pouvais me donner un coup de pouce !
    • Partager sur Facebook
    • Partager sur Twitter
      30 avril 2009 à 16:12:34

      <!-- J'ai ajouté un id à ton input, pour le récupérer plus facilement avec JS -->
      <input id="inp" type="text" name="non_complet" value=""/>
      
      <!-- Première liste, avec un appel de fonction sur onchange() -->
      <!-- Il faudra que chaque option ait son attribut "value" correctement rempli -->
      <select name="marque" onchange="remplir(this.value,true);">
      <option value="">Marque</option>
      <option value=""></option>
      <option value="AMD">AMD</option>
      <option value="Intel">Intel</option>
      </select>
      
      <!-- Même chose pour la deuxième liste -->
      <!-- A noter que les "onclick" sur les option, je suis pas sûr que ça fonctionne... -->
      <select name="model"onchange="remplir(this.value,false);">
      <option value="">Model</option>
      <option value=""></option>
      <option onclick="mod()" value="Athlon">Athlon</option>
      <option value="Athlon_64">Athlon 64</option>
      <option value="Athlon 64 X2">Athlon 64 X2</option>
      <option value="Athlon 64-FX">Athlon 64-FX</option>
      <option value="Athlon MP">Athlon MP</option>
      <!--......-->
      </select>
      
      <!-- Le JS -->
      <script type="text/javascript">
      var liste1 = ""; // Deux variables vides, qui accueilleront les valeurs des deux listes
      var liste2 = "";
      function remplir(valeur, first) { // La fonction
        if(first) { // Si c'est la valeur de la première liste
          liste1 = valeur; // on l'enregistre dans liste1
        } else { // si c'est la deuxième
          liste2 = valeur; // on l'enregistre dans liste2
        }
        document.getElementById("inp").value = liste1+" "+liste2; // On insère liste1 et liste2 dans le champ
      }
      </script>
      </script>
      


      J'ai commenté.
      • Partager sur Facebook
      • Partager sur Twitter
        30 avril 2009 à 16:21:48

        Whaouh !
        Merci infiniment !
        Je pense pas que j'aurai trouvé vu mon niveau, ou alors vers les 22-23H lol

        Merci bcp !

        Edit : pour le onclick qui traine, ça vien d'un essai que j'ai fait!

        ça marche impec !
        Par contre, j'ai pas trop saisi tout le code notement "this.value,false" ! Pourquoi l'un = true et l'autre = false ? Et si je veu en ajouter un je doit mettre quoi ?

        Bon, mais c'est juste par curiosité j'en ai pas besoin !
        Merci encore !
        • Partager sur Facebook
        • Partager sur Twitter
          30 avril 2009 à 16:53:25

          Bah, le true/false, c'est juste pour différencier l'appel provenant de la première liste de celui provenant de la deuxième...

          Si tu avais plus de listes, il faudrait en effet trouver une solution, un chiffre par exemple...
          • Partager sur Facebook
          • Partager sur Twitter

          Remplir un champ automatiquement

          × 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