Page 1 sur 1

récupérer le contenu d'une liste

Posté : 29 mai 2009, 11:48
par Akazed
Bonjour,
Dans un formulaire, j'ai une liste, appelons là MAListe.
Quand on valide le formulaire, je voudrais récupérer le contenu de cette liste dans une variable de type tableau. Seulement voilà, je ne sais pas comment accéder à la liste en PHP, comment détecte t'on son nb de lignes et comment appeler chaque ligne pour l'afecter à une case de mon tableau ?

Merci pour votre aide !

Posté : 29 mai 2009, 12:33
par geoffroy
Qu'est-ce que tu appelles liste ?
Tu peux poster le passage de ton formulaire en question ?

Posté : 29 mai 2009, 15:12
par Akazed
Il s'agit d'une liste à options toute simple, comme on trouve dans les formulaires
Elle est remplie à partir d'une liste de choixdosponibles dans une autre liste. Quand l'utilisateur clique sur un élément de le première liste, il passe dans la seconde (j'ai trouvé un script tout fait en java). Quand on valide le formulaire, je voudrais récupérer le contenu de la seconde liste (les choix de l'utilisateurs).

Posté : 29 mai 2009, 15:37
par dunbar
Tu peux poster le passage de ton formulaire en question ?

Posté : 29 mai 2009, 15:57
par Akazed
Le passage, c'est à dire ?
Tout le code de ma page ? Il n'est pas complet. Je veux juste connaître la syntaxe à employer pour récupérer le contenu d'une liste dans une variable de type tableau !

Code : Tout sélectionner

<form name="form2" method="post" action=""> <table width="748" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="45">&nbsp;</td> <td width="118"><p align="right" class="tit2">Sigle </p></td> <td width="16">&nbsp;</td> <td width="391"><input type="text" name="fsigle"></td> <td width="178" rowspan="3" align="center" valign="top"> <select name="Deja_saisis" size="15" id="Deja_saisis"> <?php //remplissage de la liste $req="select sigles.ID_sigle, sigles.sigle from sigles order by sigle"; $resultat=mysql_query($req, $base); $nb_enreg=mysql_num_rows($resultat); for ($i=0; $i <$nb_enreg; $i++) { $row = mysql_fetch_assoc($resultat); echo '<option value='.$row['ID_sigle'].'>'.$row['sigle'].'</option>'; } ?> </select> </td> </tr> <tr> <td>&nbsp;</td> <td valign="top"><p align="right" class="tit2"> Signification </p></td> <td>&nbsp;</td> <td valign="top"><textarea name="fsignification" cols="45"></textarea></td> </tr> <tr> <td height="168">&nbsp;</td> <td valign="top"><p align="right" class="tit2">D&eacute;tail </p></td> <td>&nbsp;</td> <td valign="top"><p> <textarea name="fdetail" cols="45" rows="6"></textarea> </p> <p>&nbsp;</p> </td> </tr> </table> <table width="748" border="0" cellpadding="0" cellspacing="0"> <tr> <td>&nbsp;</td> <td align="center" class="tit2">&nbsp;</td> <td align="center">&nbsp;</td> <td align="center" class="tit2">&nbsp;</td> </tr> <tr> <td width="45">&nbsp;</td> <td width="330" align="center" class="tit2">Cat&eacute;gories possibles</td> <td width="43" align="center">&nbsp;</td> <td width="330" align="center" class="tit2">Cat&eacute;gories choisies pour ce sigle</td> </tr> <tr> <td>&nbsp;</td> <td align="center"> <select name="Catp[]" size="7" multiple id="Catp" style=width:"300px"> <?php //remplissage de la liste $req="select categories.ID_categorie, categories.categorie from categories order by categorie"; $resultat=mysql_query($req, $base); $nb_enreg=mysql_num_rows($resultat); for ($i=0; $i <$nb_enreg; $i++) { $row = mysql_fetch_assoc($resultat); echo '<option value='.$row['ID_categorie'].'>'.$row['categorie'].'</option>'; } ?> </select> </td> <td align="center"> <p><img src="..\include\images\plus.gif"></p> <p><img src="..\include\images\moins.gif"></p> </td> <td align="center"> <select name="Catc" size="7" id="Catc" style=width:"300px"> </select> </td> </tr> <tr> <td>&nbsp;</td> <td align="center">&nbsp;</td> <td align="center">&nbsp;</td> <td align="center">&nbsp;</td> </tr> <tr> <td>&nbsp;</td> <td align="center"><input name="BT_annul" type="reset" id="BT_annul" style="font-family: Verdana;font-size:10px;color:#FF0000;font-weight:bold" value="Annuler"></td> <td align="center">&nbsp;</td> <td align="center"><input name="BT_ok" type="submit" id="BT_ok" style="font-family: Verdana;font-size:10px;color:#007B3E;font-weight:bold" value="Valider"></td> </tr> </table> </form>

Posté : 29 mai 2009, 16:28
par Ryle
En fait, lorsque tu soumets un formulaire, seuls l'élément sélectionné (ou les éléments sélectionnés dans le cas d'une liste à choix multiple) est envoyé au serveur. En effet, ce n'est pas parce qu'un code javascript permet te permet de passer des éléments d'une liste vers une autre que ton navigateur va comprendre que cela signifie que tu souhaites envoyer ceux de ta liste de droite et pas les autres :)

Tu dois donc rajouter un peu de javascript. Tu peux soit boucler sur les éléments de ta liste et les sélectionner (selected = true), au moment où l'utilisateur soumet le formulaire (dans le onsubmit par exemple). Ou bien à chaque fois que tu passes un élément d'une liste à l'autre, le consigner dans un champ hidden qui sera quant à lui toujours envoyé au serveur :)

Posté : 02 juin 2009, 10:34
par Akazed
Merci !
J'ai finalement réglé le problème avec onsubmit.