2 listes deroulantes ( condition, reponse)

Résolu
heyjo -  
 heyjo -
Bonjour,

Premier programme
j'ai une liste deroulante ( A,B,C)
si je choisis A il s'affiche ah!; B il s'affiche blabla; et C il s'affiche ca marche.
Jusque là tout va bien

/////////////////

<script>
function test()
{
var indice_selectionne=document.liste.choix.selectedIndex;
var change=document.liste.choix.options[indice_selectionne].value; switch (change)
{
case "a":document.liste.tester.value="ah!";break;
case "b":document.liste.tester.value="blabla";break;
case "c":document.liste.tester.value="ca marche";break;
}
}
</script>
<form name="liste">
<select name="choix" onchange="test()">
<option value=></option>
<option value="a">A</option>
<option value="b">B</option>
<option value="c">C</option>
</select>
<input type="text" name="tester" size="25" value="">
</form>

///////////////////

Dans un deuxieme tps je souhaite rajouter une deuxieme liste deroulante (1,2,3)
Si je choisi A (dans la premiere liste) et 1 ou 2 (dans la deuxieme liste) il s'affiche ah!
Si je choisi B (dans la premiere liste) et 1 ou 3 ( dans la deuxieme liste) il s'affiche blabla.
SINON dans tout les autres cas il s'affiche ca marche

ET là j'arrive pas j'ai essayé plein trucs marche pas(JE SUIS DEBUTANT)
/////////////////////////
<script>
function test()
{
var indice_selectionne=document.liste.choix.choix2.selectedIndex;
var change=document.liste.choix.choix2.options[indice_selectionne].value; switch (change)
{
????????????????????????????????????????
}
}
</script>
<form name="liste">
<select name="choix" onchange="test()">
<option value=></option>
<option value="a">A</option>
<option value="b">B</option>
<option value="c">C</option>
</select>
<select name="choix2" onchange="test()">
<option value=></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input type="text" name="tester" size="25" value="">
</form>
///////////////////////////

merci pour votre aide
Configuration: Mac OS X
Safari 419.3

6 réponses

  1. Alain42
     
    Salut,

    déja précise le languafge dans ta balise script

    <script language="javascript" type="text/javascript">
    function test()
    {
    var indice_selectionne=document.liste.choix.selectedIndex;
    var change=document.liste.choix.options[indice_selectionne].value; switch (change)
    {
    case "a":
           var indice_selectionne2=document.liste.choix.choix2.selectedIndex;
           var change2=document.liste.choix.choix2.options[indice_selectionne2].value;
           switch (change2)
           case 1:document.liste.tester.value="ah!";
            break;
           case2:...............
           etc...
     break;
    
    // et idem pour les autres case b  et c
    
    }
    }
    </script>
    
    
    
    0
  2. heyjo
     
    merci bcp pour la réponse

    j'ai tapé ca
    si je choisis A (premiere liste ) et 1 (deuxieme liste ) il s'affiche ah!
    si je choisis A (premiere liste ) et 2 (deuxieme liste ) il s'affiche ah ah!
    si je choisis B (premiere liste ) et 1 (deuxieme liste ) il s'affiche bo!
    si je choisis B (premiere liste ) et 2 (deuxieme liste ) il s'affiche bo bo!

    <script language="javascript" type="text/javascript">
    function test()
    {
    var indice_selectionne=document.liste.choix.selectedIndex;
    var change=document.liste.choix.options[indice_selectionne].value; switch (change)
    {
    case "a":
    var indice_selectionne2=document.liste.choix.choix2.selectedIndex;
    var change2=document.liste.choix.choix2.options[indice_selectionne2].value;
    switch (change2)
    case 1:document.liste.tester.value="ah!";break;
    case 2:document.liste.tester.value="ah ah!";break;
    case "b":
    var indice_selectionne2=document.liste.choix.choix2.selectedIndex;
    var change2=document.liste.choix.choix2.options[indice_selectionne2].value;
    switch (change2)
    case 1:document.liste.tester.value="bo!";break;
    case 2:document.liste.tester.value="bo bo!";break;
    }
    }
    </script>
    <form name="liste">
    <select name="choix" onchange="test()">
    <option value=></option>
    <option value="a">A</option>
    <option value="b">B</option>
    </select>
    <select name="choix2" onchange="test()">
    <option value=></option>
    <option value="1">1</option>
    <option value="2">2</option>
    </select>
    <input type="text" name="tester" size="25" value="">
    </form>

    //
    ca marche pas, pourtant j'ai essayé bcp de choses
    merci d'avance pour votre aide
    0
  3. Alain42
     
    Bonsoir,

    Tu as oublié les { } des switch(change2):

    function test(){
    var indice_selectionne=document.liste.choix.selectedIndex;
    var change=document.liste.choix.options[indice_selectionne].value;
    switch (change) {
    case "a":
    var indice_selectionne2=document.liste.choix.choix2.selectedIndex;
    var change2=document.liste.choix.choix2.options[indice_selectionne2].value;
    switch (change2){
    case 1:document.liste.tester.value="ah!";break;
    case 2:document.liste.tester.value="ah ah!";break;
    }
    case "b":
    var indice_selectionne2=document.liste.choix.choix2.selectedIndex;
    var change2=document.liste.choix.choix2.options[indice_selectionne2].value;
    switch (change2){
    case 1:document.liste.tester.value="bo!";break;
    case 2:document.liste.tester.value="bo bo!";break;
    }
    }
    }
    </script>
    </code>

    avec un code indenté c'est plus parlant

    @lain
    0
  4. heyjo
     
    bonsoir,

    merci bcp pour les corrections
    mais ca marche toujours pas,il doit avoir d'autres erreurs , mais je les vois pas( pas assez d'exp, je debute)
    je donne le programme

    <Head>
    <script language="javascript" type="text/javascript">
    function test(){
    var indice_selectionne=document.liste.choix.selectedIndex;
    var change=document.liste.choix.options[indice_selectionne].value;
    switch (change) {
    case "a":
    var indice_selectionne2=document.liste.choix.choix2.selectedIndex;
    var change2=document.liste.choix.choix2.options[indice_selectionne2].value;
    switch (change2){
    case 1:document.liste.tester.value="ah!";break;
    case 2:document.liste.tester.value="ah ah!";break;
    }
    case "b":
    var indice_selectionne2=document.liste.choix.choix2.selectedIndex;
    var change2=document.liste.choix.choix2.options[indice_selectionne2].value;
    switch (change2){
    case 1:document.liste.tester.value="bo!";break;
    case 2:document.liste.tester.value="bo bo!";break;
    }
    }
    }
    </script>
    </Head>
    <Body>
    <form name="liste">
    <select name="choix" onchange="test()">
    <option value=></option>
    <option value="a">A</option>
    <option value="b">B</option>
    </select>
    <select name="choix2" onchange="test()">
    <option value=></option>
    <option value="1">1</option>
    <option value="2">2</option>
    </select>
    <input type="text" name="tester" size="25" value="">
    </form>
    </Body>

    merci d'avance pour l'aide
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Alain42
     
    Salut,

    Cette fois j'ai testé, essayes ça ( ça fonctionne sous FireFox et Internet Explorer à tester sous Safari !)

    <html>
    <head>
    <script language="javascript" type="text/javascript">
    function test_listes(){
    	var indice_selectionne1=document.form_listes.liste1.selectedIndex;
    	var choixL1=document.form_listes.liste1.options[indice_selectionne1].value;
    	//alert("liste1: "+choixL1);
    	switch (choixL1) {
    		case "a":
    			var indice_selectionne2=document.form_listes.liste2.selectedIndex;
    			var choixL2=document.form_listes.liste2.options[indice_selectionne2].value;
    			//alert("a et Liste2 : "+choixL2);
    			switch (choixL2){
    				case "1":
    					document.form_listes.tester.value="ah!";
    				break;
    				case "2":
    					document.form_listes.tester.value="ah ah!";
    				break;
    				default:
    					document.form_listes.tester.value="";
    				break;
    			}
    		break;
    		case "b":
    			var indice_selectionne2=document.form_listes.liste2.selectedIndex;
    			var choixL2=document.form_listes.liste2.options[indice_selectionne2].value;
    				//alert("b et liste2: "+choixL2);
    			switch (choixL2){
    				case "1":
    					document.form_listes.tester.value="bo!";
    					
    				break;
    				case "2":
    					document.form_listes.tester.value="bo bo!";
    				break;
    				default:
    					document.form_listes.tester.value="";
    				break;
    			}
    		break;
    		default:
    			document.form_listes.tester.value="";
    		break;
    	}
    }
    </script>
    </head>
    <body><br><br>
    <form name="form_listes" >
    	<select name="liste1" onChange="javascript:test_listes();">
    		 <option value="choix1">Choix 1</option>
    		<option value="a">A</option>
    		<option value="b">B</option>
    	</select><br>
    	<select name="liste2" onChange="javascript:test_listes();">
    		<option value="choix2">Choix 2</option>
    		<option value="1">1</option>
    		<option value="2">2</option>
    	</select><br><br>
    	<input type="text" name="tester" size="25" value="">
    </form>
    </body> 
    
    </html>
    

    J'ai changé les noms des variables , de la form, des listes pour qu'ils soient plus parlants.
    Le déclenchement se fait sur le changement de chacune des deux listes,si dans une des listes le choix reste sur Choix1 ou Choix2, valeur par défaut, on tombe sur la partie default du switch, la valeur affichée est dans ce cas vide.
    J'ai aussi modifié le nom de la fonction, il faut se méfier des noms qui peuvent ressembler à des termes réservés.
    0
  7. heyjo
     
    Bonsoir Alain42

    Ca marche impec.

    Merci énormément pour le script et les commentaires.
    0