i=1; while ( document.classement["element"+i] ) { traitement de document.classement["element"+i] i++; }
le_select.length++; le_select.options[le_select.length-1].value="le value" le_select.options[le_select.length-1].text="le texte"
document.formulaire.liste.options[5] = null;mais je n'arrive pas a remplacer "liste" par le nom de liste. Pa exemple, dans une boucle while, j'ai mis
document.formulaire.'element'+z.options[5] = null;mais ça ne fonctionne pas (Oui, je débute en JS, j'ai des pb de manipulaiton de variable).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question<form name="formulaire"....> <select name="liste"...></select> <select name="liste"...></select> .... </form>dans ce cas il faut utiliser
je suppose 3 select avec 3 choix :
1 1 1
2 2 2
3 3 3
on choisit 2 dans le select 1 ==>
select 1 vide, 2 dans le select 2 et select 3 disparaissent
. 1 1
. 3 3
on choisit 3 sans le 2 ==>
select 2 vide, 3 dans le select 3 disparait
. . 1
ah... ben non... je voudrais
modifier et choisir 3 dans le 1
$i=1; while ($i <= $NB_element) { echo '<tr>'; echo '<td style="width:150px; text-align:center">'.$TAB_element['Nom']).'</td>'; echo '<td>'; echo '<select name="element'.$i.'" size="1" onChange="verif_liste(\'element'.$i.'\')" />'; $j=1; echo '<option value=""> </option>'; /*Pour créer une valeur vide par défaut while ($j <= $NB_element) { echo '<option value="'.$j.'">'.$j.'</option>'; $j++; } echo '</select>'; echo '</td>'; echo '</tr>'; $i++; }
question 1 ~ <select>1 ou 2 ou 3</select>je ferais
question 2 ~ <select>1 ou 2 ou 3</select>
question 3 ~ <select>1 ou 2 ou 3</select>
<select>et donner la possibilité de "classer"
question 1
question 2
question 3</select>
this.form.element1.options.length=0;
this.form.elements['element1'].options.length=0;
<form name="classement" method="post" action"......."> <select name="element1" size="1" onChange="verif_liste()"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <select name="element2" size="1" onChange="verif_liste()"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <select name="element3" size="1" onChange="verif_liste()"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> </form>
y=1; while ( y<=<?php echo $NB_elements ?> ) { utilisees[y]=(document.getElementsByName('element'+y)[0].value); y++; }
x=1; while ( x<=<?php echo $NB_joueurs ?> ) { document.classement.'element'+x.options.length=null; x++; }
document.classement.element3.options.length=null;
i=1; while ( i<=10 ) { tmp = 'element' + i; document.form.tmp.options.length=null; i++; }
function verif_liste() { var places=new Array; var utilisees=new Array; var NBelement=<?php echo $NB_elements ?> // Un tableau bêtâ 1,2,3,.. autant qu'il y a d'élément à classer // de premier indice 1 (pour éviter les décalages d'index (enfin je crois) z=1; while ( z<=NBelement ) { places[z]=z; z++; } // Un autre tableau dans lequel est stocké la valeur actuelle de chaque élément // de premier indice 1 également. y=1; while ( y<=NBelement ) { utilisees[y]=(document.getElementsByName('element'+y)[0].value); y++; } // Ensuite on vide toutes les listes de chaque élément ! x=1; while ( x<=NBelement ) { document.getElementsByName('element'+x)[0].length=null; x++; } // Puis on scan dans un premier temps chaque valeur du tableau contenant les valeurs déjà attribuées (utilisees) for ( i=1; i < utilisees.length; i++) { // Un seconde scan du tableau contenant toutes les valeurs possibles for ( j=1; j < places.length; j++) { // Et si les deux valeurs sont identiques, // on la supprime (fonction splice) des valeurs possibles >> le tableau 'places' devient le tableau des places restantes et non plus le tableau de toutes les places possibles !! if ( utilisees[i] == places[j] ) { places.splice(j,1); } } } // On créé une première boucle sur chaque élément w=1; while (document.classement["element"+w]) { // Une seconde sur le tableau des 'places restantes' for ( k=1; k < places.length; k++) { // Si une valeur existe alors on ajoute une option à la liste. if (typeof places[k] != "undefined") { document.classement["element"+w].options[k] = new Option(places[k],places[k]); } } w++; } // Enfin, on fait une nouvelle boucle sur chaque element // pour ré-attribuer les valeurs déjà sélectionnées. w=1; while (document.classement["element"+w]) { document.classement["element"+w].options[0].text=utilisees[w]; w++; } }