Partage
  • Partager sur Facebook
  • Partager sur Twitter

Modification de mon code javascript

Sujet résolu
    10 juillet 2009 à 10:07:22

    Bonjour à tous,

    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>
    


    Merci pour votre aide
    • Partager sur Facebook
    • Partager sur Twitter
      12 juillet 2009 à 2:05:42

      Désolé de la réponse tardive j'avais pas vu ton sujet*

      J'avoue ne pas avoir très bien compris ton code :o
      • Partager sur Facebook
      • Partager sur Twitter

      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.
      • Editeur
      • Markdown