Bonjour,
J'utilise un code permettant de faire passer des éléments d'une première liste de type <select> à une autre liste du même type :
J'ai dans ma page PHP un formulaire comportant plusieurs champs dont les 2 listes de type select et qui fait appel à la function soumettre_1liste :
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 <script language="JavaScript" type="text/javascript"> /*<![CDATA[*/ /* Codes originels © DR. Killeak : corrections pour compatibilite avec IE 6 et 7, Firefox 2 et Safari 2. */ /* deplacer( liste_depart, liste_arrivee ) Déplace depuis la liste de départ (argument 1) et à destination de la liste d'arrivée (argument 2) le ou les éléments sélectionnés par l'utilisateur, l'ajout se faisant à la suite des éléments déjà présents dans la liste d'arrivée. */ function deplacer( liste_depart, liste_arrivee ) { for( i = 0; i < liste_depart.options.length; i++ ) { if( liste_depart.options[i].selected && liste_depart.options[i] != "" ) { o = new Option( liste_depart.options[i].text, liste_depart.options[i].value ); liste_arrivee.options[liste_arrivee.options.length] = o; liste_depart.options[i] = null; i = i - 1 ; } else { // alert( "aucun element selectionne" ); } } } /* soumettre_1liste( liste ) Au moment de la soumission du formulaire, sélectionne automatiquement toutes les valeurs de la liste donnée indiquée dans l'argument, afin que les valeurs choisies soit récupérées dans le script de traitement. */ function soumettre_1liste( liste ) { var listelen = liste.length; for( i = 0; i < listelen; i++ ) { liste.options[i].selected = true; } } //--> /*]]>*/ </script>
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <form name="export" method="post" OnSubmit="javascript: soumettre_1liste( document.forms[0].choix );" action=""> <!--liste de départ--> <select name="dispo[]" id="dispo" style="width: 210px;" size="16" multiple="multiple" OnDblClick="javascript: deplacer( this.form.dispo, this.form.choix );"> <!--...options value générés dynamiquement par PHP--> </select> <!--liste de d'arrivée--> <select name="choix[]" id="choix" style="width: 210px;" size="16" multiple="multiple" OnDblClick="javascript: deplacer( this.form.choix, this.form.dispo );"> </select> <input type="submit" value="OK"name="btSubmit2" /> </form>
Le code JavaScript est fonctionnel et j'arrive à récupérer en PHP les values rapatriées dans la liste d'arrivée. Mais je butte en voulant ajouter un 2eme système de bascule entre 2 select dans mon formulaire :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <!--liste de départ2--> <select name="dispo2[]" id="dispo2" style="width: 210px;" size="16" multiple="multiple" OnDblClick="javascript: deplacer( this.form.dispo2, this.form.choix2 );"> <!--...options value générés dynamiquement par PHP--> </select> <!--liste de d'arrivée2--> <select name="choix2[]" id="choix2" style="width: 210px;" size="16" multiple="multiple" OnDblClick="javascript: deplacer( this.form.choix2, this.form.dispo2 );"> </select>
Ce 2ème système de bascule fonctionne, mais lors de la soumission du formulaire je n'arrive pas à récupérer en php à la fois les values de la liste d'arrivée1 et celles de liste d'arrivée2. Étant débutant, j'ai essayé de rajouter au niveau du <form> :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<form name="export" method="post" OnSubmit="javascript: soumettre_1liste( document.forms[0].choix );" OnSubmit="javascript: soumettre_1liste( document.forms[0].choix2 );"action="">
Mais cela ne marche pas : je ne récupère que les values de la liste d'arrivée1. Si je laisse que leCette fois-ci je récupère les values de la liste d'arrivée2. Mais comment faire pour récupérer les values des 2 systèmes de bascule ? Merci de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part OnSubmit="javascript: soumettre_1liste( document.forms[0].choix2 );"
Partager