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 :

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>
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 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 le
Code : Sélectionner tout - Visualiser dans une fenêtre à part
OnSubmit="javascript: soumettre_1liste( document.forms[0].choix2 );"
Cette 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.