[RESOLU] Déplacement de donnée dans formulaire type Select

Eléphant du PHP | 291 Messages

29 sept. 2013, 10:04

Bonjour,

Je ne parviens pas à adapter ce bout de code. Il permet de passer des valeurs d'une liste à une autre.

Formulaire :

Code : Tout sélectionner

<select id="choix" name="choix"> <option value="1">Test</option> <option value="2">Test2</option> </select> <input type="button" value="ajouter >>>" onclick="move_list(document.getElementById('choice_categories').options[document.getElementById('choice_categories').selectedIndex].value,this.form.selected_categories)"> <br /> <br /> <input type="button" value="<<< enlever" onclick="move_list(this.form.selected_categories,this.form.choice_categories)"> <select id="selection" name="selection[]"> </select>
js :

Code : Tout sélectionner

<script type="text/javascript"> // Basculer des éléments d'une liste à l'autre function move_list(l1,l2) { if (l1.options.selectedIndex>=0) { o=new Option(l1.options[l1.options.selectedIndex].text,l1.options[l1.options.selectedIndex].value); l2.options[l2.options.length]=o; l1.options[l1.options.selectedIndex]=null; }else{ alert("Veuillez vérifier votre séléction"); } } </script>
Cela fonctionne si les crochets [] ne sont pas présent dans le nom du deuxième select mais je ne peux pas utiliser les données lors de la soumission du formulaire.

Je pense que je devrais travailler avec les ID des select mais je ne sais pas comment faire.
Pourriez-vous m'aider ?

D'avance merci.

ViPHP
xTG
ViPHP | 7331 Messages

29 sept. 2013, 11:01

Je dirai à la lecture du code que ça fonctionne si tu pointes l'élément avec l'id. Ta fonction est générique.

Code : Tout sélectionner

onclick="move_list(document.getElementById('choix'), document.getElementById('selection'))"
A tester. :)

Eléphant du PHP | 291 Messages

30 sept. 2013, 09:48

Merci pour votre aide cela fonctionne.

j'ai un autre problème maintenant, coté javascript c'est ok mais je ne parviens pas à récupérer le contenu lors de la soumission quand l'id est présent dans mon select.