éléments déplaçables entre deux listes
Bonjour j'ai un petit souci avec des listes déplaçables. Je viens juste de rajouter une liste déroulante de clients (premier select) et la je ne peux plus déplacé d'éléments entre les deux listes. :cry: Avec la console de Debug de JavaScript j'obtiens le message d'erreur suivant l2.options has no properties. Je ne comprend pas en quoi la liste déroulante que j'ai rajouté pose problèmes. Merci de votre aide par avance. Voici le code
Code:
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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
| <script language="javascript" type="text/javascript">
<!-- script de deplacement entre listes -->
function Deplacer(l1,l2)
{
alert(l1);
alert(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("Aucun groupe n\'a été sélectionné"); }
}
function DeplacerTout(l1,l2)
{
for (i=0; i < l1.options.length ; i++)
{
o=new Option(l1.options(i).text,l1.options(i).value);
l2.options[l2.options.length]=o;
l1.options[i]=null;
i = i -1 ;
}
}
<!-- script de selection auto de tout le contenu d'une liste -->
function PostSelect(liste)
{
// On compte le nombre d'item de la liste select
NbCol1 = document.forms[liste].elements[9].length;
// On lance une boucle pour selectionner tous les items
for (a = 0; a < NbCol1; a++)
{ document.forms[liste].elements[9].options[a].selected = true; }
}
</script>
<form name="form1" method="post" action="utilisateur_valider.php">
<fieldset>
<legend>Créer un utilisateur</legend>
<p>Client :
<select name="client" size="1" id="client">
<option value="" selected>Choisissez un client</option>
<?php
//----- boucle d'affichage de la liste déroulante des clients -----
//---- si on est sur la page de creation d'une facture ou devis on affiche que les clients non supprimés -------
$req_cli = mysql_query ("SELECT * FROM cwfact_clients ORDER BY societe,contact");
while ($res_cli = mysql_fetch_array($req_cli))
{
if($res_cli["contact"] != "") { $contact = "[".stripslashes($res_cli["contact"])."]"; }
else { $contact = ""; }
echo '<option value="'.$res_cli["id_client"].'">'.stripslashes($res_cli["societe"])." ".$contact.'</option>';
}
?>
</select>
</p>
<p>Nom d'utilisateur : <input name="user" type="text" size="40" /></p>
<p>Mot de passe : <input name="pass1" type="password" size="12" /></p>
<p>Retapez le mot de passe : <input name="pass2" type="password" size="12" /></p>
<hr />
<h2>Groupes auxquels a appartient cet utilisateur :</h2>
<div id="transfertliste">
<table>
<tr><td width="40%">Groupes disponibles</td><td width="20%"> </td><td width="40%">Groupes choisis</td></tr>
<tr>
<td>
<select name="liste1" size="10" OnDblClick="Deplacer(this.form.liste1,this.form.elements[9])" id="liste1">
<?php
//----- boucle d'affichage de la liste des groupes ---------
$req_groupe = mysql_query("SELECT * FROM cwadm_groupes ORDER BY groupe");
while ($res_groupe = mysql_fetch_array($req_groupe))
{ echo '<option value="'.$res_groupe["id_groupe"].'">'.$res_groupe["groupe"].'</option>'; }
?>
</select>
</td>
<td>
<p><input type="button" value=" > " onClick="Deplacer(this.form.liste1,this.form.elements[9])" title="Ajouter un groupe" /></p>
<p><input type="button" value=" < " onClick="Deplacer(this.form.elements[9],this.form.liste1)" title="Retirer un groupe"/></p>
<p><input type="button" value=">>" OnClick="DeplacerTout(this.form.liste1,this.form.elements[9])" title="Ajouter tous les groupes"/></p>
<p><input type="button" value="<<" onClick="DeplacerTout(this.form.elements[9],this.form.liste1)" title="Retirer tous les groupes"/></p>
</td>
<td>
<select name="liste2[]" size="10" multiple OnDblClick="Deplacer(this.form.elements[9],this.form.liste1)">
</select>
<a href="#" onClick="javascript:PostSelect('form1')"><p class="info">Cliquez ici pour tout sélectionner</p></a>
</td>
</tr>
</table>
</div>
</fieldset>
</form> |