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 :

Remplir 3 champs textes différents avec une liste déroulante


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 329
    Points : 151
    Points
    151
    Par défaut Remplir 3 champs textes différents avec une liste déroulante
    Bonsoir,

    Je cherche à remplir 3 champs texte différents avec une liste déroulante.
    Exemple :
    je choisit Resultat 1 ===> j'affiche A B C
    je choisit Resultat 2 ===> j'affiche AB BC CD
    je choisit Resultat 3 ===> j'affiche ABC BCD CDE

    J'ai trouvé un code sur le web que j'ai modifié quelques peu, mais je n'arrive pas à faire se que je veut. Et comme mes connaissances en javascript sont asser basse,j'ai besoin de vos aides collégiales.

    Je vous met le code en question.
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    <html>
    <head>
    <title>Document sans titre</title>
    <script language="javascript">
    function appendKeyword()
    {
       var c = 0;
       var index = document.f.kw.selectedIndex;
       var myText = document.f.kw.options[index].value;
       if (!document.f.cat1.value) {c=1;}
       if (!document.f.cat2.value) {c=1;}
       if (!document.f.cat3.value) {c=1;}
       switch (c)
       {
       case 1 :
         document.f.cat1.value=myText;
         document.f.cat2.value=myText;
         document.f.cat3.value=myText;
       break;
     
       case 2 :
         document.f.cat1.value=myText;
         document.f.cat2.value=myText;
         document.f.cat3.value=myText;
       break;
     
       case 3 :
         document.f.cat1.value=myText;
         document.f.cat2.value=myText;
         document.f.cat3.value=myText;
       break;
     
       default : 
         document.f.cat1.value=myText;
         document.f.cat2.value=myText;
          document.f.cat3.value=myText;
       break;
       }   
    }
    </script>
    </head>
     
    <body>
    <form method="POST" name="f">
    <select name="kw" onchange="appendKeyword()">
    <option value="">choix
    <option value="A">Resultat 1
    <option value="B">Resultat 2
    <option value="C">Resultat 3
    </select>
     
    <input name="cat1" type="text"  id="cat1">
    <input name="cat2" type="text"  id="cat2">
    <input name="cat3" type="text"  id="cat3">
    </form> 
    </body>
    </html>
    Tel que c'est la j'affiche 3 fois la meme chose... soit tous des A ou des B ou des C. Je suis conscient qu'il manque des choses à ce code mais je ne sait pas lesquel.

    Merci de vos aides.

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 649
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 649
    Points : 11 138
    Points
    11 138
    Par défaut
    bonjour,

    est-ce ceci que tu souhaites faire (testé sous IE et FF) ?

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    <html>
    <head>
    <title>Document sans titre</title>
    <script language="javascript">
    function appendKeyword()
    {
       var myText1="", myText2="", myText3="";
     
       var index = document.f.kw.selectedIndex;
       var myText = document.f.kw.options[index].value;
       var pos1 = myText.indexOf("_");                  //position du 1er "_"
       var pos2 = myText.indexOf("_", pos1+1);    //position du 2nd "_"
     
      //Separation des 3 chaines de caracteres
       if (pos1>=0 && pos2>=pos1)
       {
        myText1 = myText.slice(0,pos1);
        myText2 = myText.slice(pos1+1,pos2);
        myText3 = myText.slice(pos2+1,myText.length);
       }
       alert(index+" : "+myText1 +" , "+ myText2 +" , "+ myText3);
     
       //affichage
       document.f.cat1.value=myText1;
       document.f.cat2.value=myText2;
       document.f.cat3.value=myText3;
     
    }
    </script>
    </head>
     
    <body>
    <form method="POST" name="f">
    <select name="kw" onchange="appendKeyword()">
    <option value="">choix
    <option value="A_B_C">Resultat 1
    <option value="AB_BC_CD">Resultat 2
    <option value="ABC_BCD_CDE">Resultat 3
    </select>
     
    <input name="cat1" type="text"  id="cat1">
    <input name="cat2" type="text"  id="cat2">
    <input name="cat3" type="text"  id="cat3">
    </form>
    </body>
    </html>
    j'ai utilisé le "_" comme séparateur des 3 champs. J'ai modifié la valeur des options. J'ai supprimé la variable "c" qui n'avait pas lieu d'être et toute la série des "case".

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 329
    Points : 151
    Points
    151
    Par défaut
    Tout à fait, merci pour le code.

  4. #4
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 649
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 649
    Points : 11 138
    Points
    11 138
    Par défaut
    si tu as trouvé ton bonheur n'oublie pas

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

Discussions similaires

  1. Mettre à jour un champ avec une Liste déroulante
    Par Narutosaad dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/08/2010, 12h18
  2. Remplir un champs TEXT caché avec une fonction on change sur une liste déroulante
    Par tang le breton dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/11/2009, 11h04
  3. Remplir plusieurs champs de texte à partir d'une liste déroulante
    Par vnlttt dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/06/2008, 12h58
  4. remplir des champs texte automatiquement avec base
    Par rvm31 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/11/2007, 09h55

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