double select multiple pour passer des éléments d'une liste à l'autre

double select multiple pour passer des éléments d'une liste à l'autre - HTML/CSS - Programmation

Marsh Posté le 21-07-2005 à 18:08:10    

Bonjour,
 
Je cherche actuellement à faire une double liste déroulante à choix multiple.
dans la liste de gauche se trouveront les éléments disponibles, et dans celle de droite les éléments sélectionnés, grace à un bouton ajouter et retirer.
 
J'ai déja cette partie la qui marche, mais je n'arrive pas à récupérer le contenu de la liste de droite par la suite.  
 
 
<form name="creer_modele" action="creer_modele3.php" method="post">
<tr>
 <td width="300" align="center"><b>Motorisation</b><br>
 <select multiple id="LstSource" style="font-family:verdana; font-size:10; width:150;" size="6" ondblclick="Ajouter();">
 <option value="element1">element1<option>
 <option value="element2">element2<option>
 <option value="element3">element3<option>
 <option value="element4">element4<option>
 <option value="element5">element5<option>
 <option value="element6">element6<option>
 </select>
 </td>
 <td align="center">
   <input type="button" style="font-family:verdana; font-size:10;" value="» Ajouter »" onclick="Ajouter();">
   <br>
   <input type="button" style="font-family:verdana; font-size:10;" value="« Retirer «" onclick="Supprimer();">
 </td>
 <td>
   <select multiple name="id_motorisation[]"  id="LstCible" style="font-family:verdana; font-size:10; width:150;" size="6" ondblclick="Supprimer();">
   </select>
 </td>
 
  <!-- Partie JavaScript -->
  <script language="javascript">
     var NbSource = 6;
     var NbCible = 0;
   
     function Ajouter(){
    var NbEle = -1;
    var TxtEle = "";
  //for(j = 0; j < NbSource+1; j++){
    for(i = 0; i < document.all("LstSource" ).length; i++){
      if (document.all("LstSource" ).options[i].selected)
   {
     NbEle = i;
     TxtEle = document.all("LstSource" ).options[i].text;
      }
    }
   
   
    if (NbSource != 0 && NbEle != -1){
      document.all("LstSource" ).options[NbEle] = null;
      document.all("LstCible" ).options[NbCible] = new Option(TxtEle);
      NbCible = NbCible + 1;
      NbSource = NbSource - 1;
    }
     }
  //}
   
     function Supprimer(){
    var NbEle = -1;
    var TxtEle = "";
    for(i = 0; i < document.all("LstCible" ).length; i++){
      if (document.all("LstCible" ).options[i].selected){
     NbEle = i;
     TxtEle = document.all("LstCible" ).options[i].text;
      }
    }
   
    if (NbCible != 0 && NbEle != -1){
      document.all("LstCible" ).options[NbEle] = null;
      document.all("LstSource" ).options[NbSource] = new Option(TxtEle);
      NbCible = NbCible - 1;
      NbSource = NbSource + 1;
    }
     }
  </script>
</tr>
</form>

 
 
La page de traitement, en php, contient :  

<?php
foreach ($id_motorisation as $choix)
{
   echo "Choix utilisateur : ",$choix,"<br>";
}
?>

 
 
Mais je n'obtiens rien dans l'affichage, car l'action de la fonction ajouter semble ajouter une option au select mais elle n'est pas visible quand on affiche la source de la page.
 
Quelqu'un aurait il une idée?  
 
Merci d'avance,
 
Bolbo

Reply

Marsh Posté le 21-07-2005 à 18:08:10   

Reply

Marsh Posté le 21-07-2005 à 18:18:44    

C'est normal que ton premier select n'a pas de name?? mais seulement un id?? C'est peut etre de la que viens l'erreur non?

Reply

Marsh Posté le 21-07-2005 à 19:10:29    

Bah en fait mon 1er select il contient uniquement les données sources, mais c'est le contenu du 2eme select qui m'intéresse, celui où il y a les données choisies par l'utilisateur, c'est pour cette raison que je ne voyais pas d'utilité à le nommer.
Mais c'est peut etre une erreur :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed