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 :

Modification de mon code javascript


Sujet :

JavaScript

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    139
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Par d�faut Modification de mon code javascript
    Bonsoir � 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�.

    Voici mon code:

    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
    <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

  2. #2
    R�dacteur/Mod�rateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par d�faut
    Salut,
    for(var i=0,l=sel.length;i<l;i++)
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    for(var i=0;i<sel.length;i++)
    sel[i].value = valeurs[nb]; // On lui applique l'ancienne valeur de <select> modifi�
    valeurs[i] = valeurs[nb];
    Tu ne dois pas permuter les valeurs de valeurs[nb] et valeur[i]?
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    sel[i].value = valeurs[nb];
    var a = valeurs[i];
    valeurs[i] = valeurs[nb];
    valeurs[nb]=a;

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    139
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Par d�faut
    Merci, je vais essayer �a de suite et je vous tiens au courant.

  4. #4
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    139
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Par d�faut
    Citation Envoy� par andry.aime Voir le message
    Salut,

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    for(var i=0;i<sel.length;i++)
    Tu ne dois pas permuter les valeurs de valeurs[nb] et valeur[i]?
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    sel[i].value = valeurs[nb];
    var a = valeurs[i];
    valeurs[i] = valeurs[nb];
    valeurs[nb]=a;
    H�las, �a ne fonctionne pas. Les changements ne se sont plus du tout. lorsque je remplace 1 par 2, 2 reste � 2 et 1 disparait.

  5. #5
    R�dacteur/Mod�rateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par d�faut
    Enl�ve valeurs[nb] = val; apr�s la boucle for.

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    139
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Par d�faut
    Citation Envoy� par andry.aime Voir le message
    Enl�ve valeurs[nb] = val; apr�s la boucle for.
    Ca ne fonctionne pas non plus.

    J'ai pu constater que lorsque j'inverse 1 et 2 le r�sultat donne cela � l'affichage instantann�:
    2
    1
    3
    Puis lorsque j'inverse 3 et 1, le r�sultat me donne cela:
    3
    1
    2
    au lieu de
    2
    3
    1
    comme souhait�.
    Je remarque que le 3 prend la place de la "valeur" 1 (rang 1) au lieu de prendre la place du 2.

    par contre, si au lieu d'inverser le 1 par le 3 je fais
    3
    1
    2
    le r�sultat est:
    2
    3
    1
    r�sultat recherch� mais illogique dans le principe de fonctionnement que je souhaite.

    Si �a peut vous aider � trouver la solution � mon probl�me...

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Petite aide pour mon code javascript
    Par bennji dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 27/12/2008, 19h42
  2. [DOM] Mon code javascript s'arrete sans erreur.. (GetElementByID)
    Par Titi41 dans le forum G�n�ral JavaScript
    R�ponses: 12
    Dernier message: 30/06/2008, 10h52
  3. le htm bloque mon code javascript
    Par guillaumeIOB dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 12/12/2007, 09h20
  4. une faute dans mon code javascript.
    Par jack_1981 dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 11/05/2006, 03h05
  5. Probl�me de param�tres dans mon code javascript
    Par cocacollection dans le forum G�n�ral JavaScript
    R�ponses: 7
    Dernier message: 15/03/2006, 10h53

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