Je viens vous soumettre un code car je rencontre une difficulté que je n'arrive pas à résoudre. en effet, mon objectif est de pouvoir avoir des menus déroulants qui me permettent de modifier des positions. par exemple:
1 devient 2 donc, 2 devient 1
3 devient 4 donc, 4 devient 3
etc....
Mon code fonctionne parfaitement comme cela. par contre,
si je passe 1 en 2, puis tout de suite 3 en 1, lorsque j'envoie, le résultat me donne en première place 3, en 2ème 1 et en 3ème 2.
visuellement ça donne ça:
depart première modif deuxième modif validation résultat
1-------2--------------2----------------x-----------3
2-------1--------------3----------------x-----------1
3-------3--------------1----------------x-----------2
Le résultat est donc erroné.
[U]
Voici mon code:[/U]
<script type="text/javascript">
var sel; // Variable pour récupérer tous les <select>
var valeurs = []; // Tableau pour garder en mémoire les valeurs
function rang(nb) { // En paramètre l'indice du <select>
var val = sel[nb].value; // On garde dans "val" la valeur du <select> modifié
for(var i=0,l=sel.length;i<l;i++) { // On parcourt la totalité des <select>
if((i!=nb) && (sel[i].value == val)) { // Si ce n'est pas le <select> modifié et que la valeur correspond
sel[i].value = valeurs[nb]; // On lui applique l'ancienne valeur de <select> modifié
valeurs[i] = valeurs[nb]; // Et on enregistre le changement dans le tableau des valeurs
}
}
valeurs[nb] = val; // On enregistre également le changement du <select> modifié
}
window.onload=function() { // Au chargement (initialisation)
sel = document.getElementsByTagName("select"); // On récupère tous les éléments <select> dans "sel"
for(var i=0,l=sel.length;i<l;i++) { // On parcourt tout
valeurs.push(sel[i].value); // Et on sauvegarde les valeurs dans le tableau "valeurs".
}
}
</script>
Désolé de la réponse tardive j'avais pas vu ton sujet*
J'avoue ne pas avoir très bien compris ton code
Modification de mon code javascript
× 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.