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 :

bascule entre liste


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    84
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 84
    Par d�faut bascule entre liste
    Bonjour,

    Dans un page html, j'aimerais faire passer des valeurs de la liste <select> "annee_ref" vers une autre liste identifi�e "out".

    Voil� mon code html :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <td>
    <select id="annee_ref" name="anneeRef" multiple="multiple" size="5">
    	<option>1999</option>
    	<option>2000</option>
    	<option>2001</option>
    </select>
    <td/>
    <td>
          <input type="button" value=">>" onclick="passer_droite()">
    </td>
    <td>
    	<input type="button" value="<<" onclick="passer_gauche()">
    </td>
    j'ai bricol� une fonction qui me permet de passer un valeur � la fois :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    function passer_droite(){
     
    var valeur_liste =document.getElementById('annee_ref').options[document.getElementById('annee_ref').selectedIndex].text;
    var long_liste = document.getElementById('out').length;
    document.getElementById('out')[long_liste] = new Option(valeur_liste);
    	}
    Or mon select a l'attribut 'multiple', j'aimerais donc faire passer plusieurs valeurs � la fois, je me doute que je dois utiliser une boucle for, mais je n'arrive pas � int�grer celle-ci dans ce script.

    Si quelqu'un peut m'orienter vers une solution, je suis preneur...

  2. #2
    Expert �minent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par d�faut
    Bonjour,

    Puique vous �tes en select multiple, il vaut mieux pr�ciser le name ainsi:

    Si je ne m'abuse, vous r�cup�rez les �l�ments qui ont ce nom et vous obtenez un array des options s�lectionn�es que vous pouvez parcourir ais�ment.

    Edit: Mais je m'abuse.
    Mieux vaut se servir de la FAQ.

  3. #3
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    84
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 84
    Par d�faut
    �a fonctionne, voil� mon code complet :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function passer_droite()
    {
    var option = document.getElementById('annee_ref').options;
    var selected_option = new Array ();
    /*récupération des valeurs sélectionnée et assignation dans l'arrey selected_option */
    for (i=0; i<option.length; i++){
    	if(option[i].selected){
    		selected_option[selected_option.length]=option[i].text;
    			}
    	}
    /*insertion d'une nouvelle option a la deuxième liste pour chaque valeur récupérée plus haut */
    for (i=0; i<selected_option.length; i++){
    	var liste_length = document.getElementById('out').length;
    	document.getElementById('out')[liste_length] = new Option(selected_option[i]);
    		}
    }
     
    function passer_gauche()
    {
    document.getElementById('out')[length] = null;
    }
    // -->
    </SCRIPT>
    <body>
    <fieldset><legend>Test</legend>
    	<table>
    		<tr>
    			<td>Année de référence<td/>
    			<td>
    				<select id="annee_ref" name="anneeRef[]" multiple="multiple" size="5">
    					<option>1999</option>
    					<option>2000</option>
    					<option>2001</option>
    				</select>
    			<td/>
    			<td>
    				<input type="button" value=">>" onclick="passer_droite()">
    			</td>
    			<td>
    				<input type="button" value="<<" onclick="passer_gauche()">
    			</td>
    			<td>
    				<select id="out" name="sortie" multiple="multiple" size="5">
    				</select>
    			</td>
    		</tr>
    	</table>
    </fieldset>
    </body>
    </html>
    J'ai rajout� une deuxi�me fonction, qui permet d'enlever un �l�ment qui vient d'�tre bascul� dans l'autre liste. Mais cette fonction n'enl�ve pas l'�l�ment que je s�lectionne mais bien le premier �l�ment. Je suppose qu'il y a moyen d'enlever l'�l�ment de son choix ?


    ps : je suis d�butant en JavaScript, donc si vous avez la moindre remarque sur la mani�re dont je code, n'h�sitez pas !

  4. #4
    Expert �minent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par d�faut
    Vous devez r�cup�rer les �l�ments s�lectionn�s de la m�me mani�re.
    Est-ce bien le comportement que vous voulez avoir ? La liste de gauche ne se vide pas quand l'�l�ment passe � droite. C'est peut-�tre un choix mais dans ce cas-l�, on peut ajouter x fois la m�me option � droite.

  5. #5
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    84
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 84
    Par d�faut
    La liste de gauche ne se vide pas quand l'�l�ment passe � droite
    En y r�fl�chissant, il est vrai que je ne veux pas avoir plusieurs fois un �l�ment de gauche qui passe � droite... il faut donc que la liste de gauche se vide pour remplir celle de droite et inversement avec l'autre fonction.
    Mais dans ce cas l�, je suis un peu perdu quant � la m�thode � utiliser.

  6. #6
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    84
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 84
    Par d�faut
    J'aurais encore une question.
    J'aimerais que toutes les valeurs que je bascule de la liste de gauche vers la liste de droite soient automatiquement s�lectionn�es (= surlign�es en bleu). Je me suis donc inspir� de la FAQ http://javascript.developpez.com/faq...ps#modifSelect.

    Ce qui donne :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    for (i=0; i<selected_option.length; i++){
    var liste_length = document.getElementById(\'out\').length;
    document.getElementById(\'out\')[liste_length] = new Option(selected_option[i]);
    document.getElementById(\'out\').options[i].selected = true;
    }
    Or, il n'y a que la premi�re valeur bascul�e qui est s�lectionn�e, les suivantes ne le sont pas.
    Comment faire pour qu'elles le soient toutes ?

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

Discussions similaires

  1. R�ponses: 4
    Dernier message: 13/06/2006, 13h45
  2. Liaison entre liste d�roulante et un champs
    Par lolo_bob2 dans le forum Access
    R�ponses: 4
    Dernier message: 19/04/2006, 11h54
  3. R�ponses: 2
    Dernier message: 13/04/2006, 18h16
  4. [vb.net][Thread] Basculer entre Thread
    Par arnolem dans le forum Windows Forms
    R�ponses: 5
    Dernier message: 06/01/2006, 18h59
  5. basculer entre 2 blocks visible et invisible
    Par popressay dans le forum Oracle
    R�ponses: 7
    Dernier message: 27/08/2004, 16h40

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