de ce code
<form method="post" action="critere.php"> <select name="champ"> <?php connectMaBase(); $sql='SHOW fields FROM utilisateurs'; $req=mysql_query($sql) or die('Erreur SQL !<br/>'.$sql.'<br/>'.mysql_error()); while($data=mysql_fetch_array($req)) { echo '<option name="'.$data['field'].'">'.$data['field'].'</option>'; } ?> </select> Entrez votre critère de sélection dans ce champ : <input type="text" name="critere"/> <input type="submit" name="valider" value="Rechercher"/> </form>
bon c'est du leech je suis dsl , mais avant de faire mon propre code je ne comprend pas cette ligne:
echo '<option name="'.$data['field'].'">'.$data['field'].'</option>';
pourquoi deux fois $data?
Merci
Dernière modification par th3cloud (15-08-2011 17:25:22)
Hors ligne
Posté le 15-08-2011 17:21:51
Je suppose que $data['field'] doit contenir le nom des options, or la balise option doit avoir un attribut "name" qui permet une fois le formulaire envoyé d'identifier quelle option a été sélectionnée, donc c'est pourquoi le code donne la valeur $data['field'] à name, par contre normalement il faut utiliser l'attribut "value" à la place de "name" pour les balises option.
Ensuite le texte qui se trouve entre les deux balises <option></option> est le texte qui sera affiché dans la liste déroulante dans le site, c'est l'option qui sera affiché sur la page, donc ça explique le $data['field'] qui contient le nom de l'option.
En résumé:
- Le 1er $data['field'] sert à identifier l'option pour un traitement plus tard du formulaire.
- Le 2ème $data['field'] est le texte qui sera affiché sur la page web.
Hors ligne
Posté le 16-08-2011 10:39:48
ok merci par contre je suis tombé sur un site traitant du php , et du coup je suis arrivé sur votre forum , mais impossible de retrouver le site en question ...^^
Dernière modification par th3cloud (29-08-2011 08:28:08)
Hors ligne
Posté le 29-08-2011 08:27:46