récupérer le contenu d'une liste

Petit nouveau ! | 5 Messages

29 mai 2009, 11:48

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 !

Eléphant du PHP | 94 Messages

29 mai 2009, 12:33

Qu'est-ce que tu appelles liste ?
Tu peux poster le passage de ton formulaire en question ?

Petit nouveau ! | 5 Messages

29 mai 2009, 15:12

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).

ViPHP
ViPHP | 2291 Messages

29 mai 2009, 15:37

Tu peux poster le passage de ton formulaire en question ?
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Petit nouveau ! | 5 Messages

29 mai 2009, 15:57

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>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

29 mai 2009, 16:28

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 :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 5 Messages

02 juin 2009, 10:34

Merci !
J'ai finalement réglé le problème avec onsubmit.