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