Liste déroulante PHP & MySQL

mf
Invité n'ayant pas de compte PHPfrance

07 mai 2005, 10:44

Bonjour,

J'ai créé une table_nom avec 5 champs id, nom, prénom, adresse, tel
Voici le début du script que j'ai incéré dans ma page php:

//début
<?
include ('mysql_connect.php');
?>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td>

<?
echo '<select>';
$requete = mysql_query("SELECT * FROM table_nom ORDER BY nom ASC");
$nombrelignes = mysql_numrows($requete);
for ($i=0;$i<$nombrelignes;$i++)
{
$nom = mysql_result($requete,$i,"nom");
echo "<option value=$nom> $nom </option>";
}
echo '</select>';
?>

</td>
</tr>
</table>
//fin

C'est un debut, je sais..
Ma liste de nom s'affice bien dans ma liste déroulante mais après :?

Lors de ma sélection (dans la liste déroulante), j'aimerais afficher une autre page (exemple : infos.php) en dessous de ma liste dérourante (nom) avec le prénom, l'adresse, le tel.

Voila, je sais pas si j'ai été clair, merci d'avant pour votre aide.

Mammouth du PHP | 19672 Messages

07 mai 2005, 13:31

Salut,
dans ton formulaire, il manque un élément primordial: la balise <form>
Cette balise doit avoir un attribut "action" qui indique l'url de la page qui doit recevoir les données du formulaire.

Il manque également un attribut "name à ta balise <select> : cet attribut va permettre d'identifier le champ du formulaire lors du traitement.

À partir de là, c'est facile. Tu mets action="info.php" dans ta balise <form>, name="choix" dans ta balise <select> et au début de ta page info, tu récupères le choix qui a été sélectionné:
$choix = $_POST['choix'];
Tu auras l'identifiant te permettant de récupérer les informations détaillées sur ce choix.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

mf
Invité n'ayant pas de compte PHPfrance

07 mai 2005, 17:20

Merci Cyrano pour ton aide

Mais je crois que je me complique la vie
Alors, je change de méthode .... :(
Au lieu d'afficher la page (info.php dans mon formulaire), je veux afficher un tableau a la seul différence, c'est que ma liste déroulante laissera afficher le nom que j'aurais sélectionné et j'afficherais dans ce tableau : prenom, adresse, tel en dessous de celle ci.

Le tableau s'affichera après la sélection du nom, en d'autre terme lorsque je lancerais mon formulaire il ni aura que ma liste déroulante.

<?
include ('mysql_connect.php');
?>

<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td>

<?

echo '<select>';
$requete = mysql_query("SELECT * FROM table_nom ORDER BY nom ASC");
$nombrelignes = mysql_numrows($requete);
for ($i=0;$i<$nombrelignes;$i++)
{
$nom = mysql_result($requete,$i,"nom");
echo "<option value=$nom> $nom </option>";
}
echo '</select>';

?>


</td>
</tr>
</table>

Qui pourrait me fournir ou me compléter le reste ? merci