Le magasin YBET Rue Albert 1er, 7 6810 Pin - Chiny Route Arlon - Florenville (/fax: 061/32.00.15 |
|
YBET | Créer son propre site internet |
1. Liste déroulante - 2. Récupération des catégories - sous-catégorie dans un tableau à partir de la base MySQL
Lorsqu'on affiche un formulaire, on reprend souvent des listes déroulantes, des valeurs possibles pré-établies pour un champ. Voyons comment afficher dans un champ des valeurs reprises dans une table MySQL. Ceci va permettre de reprendre pour un site de petites annonces les différentes catégories, pour un développement de facturation les taux de TVA ou le nom du client, ...
La première partie va être de créer une liste déroulante reprenant les catégories dans le formulaire d'entrée ou même de sélection d'une catégorie. Avant de gérer les utilisateurs, nous afficherons les annonces (ce sera la partie suivante) en les intégrant dans notre lay-out du chapitre 11.
L'insertion d'annonces reprendra un formulaire auto-appelé comme dans le chapitre précédant, un seul fichier php reprenait le formulaire et les vérifications.
Une liste déroulante se code en HTML de la manière suivante. Dans ce cas, nous avons simplement demandé d'afficher le numéro de catégorie mais le formulaire envoie en fait valeur X (ne numéro de la catégorie
<form method="POST"
name="catégorie">
<p><select size="1"
name="uid">
<option selected value="valeur
1">catégorie 1</option>
<option value="valeur
2">catégorie 2</option>
</select></p>
<p><input type="submit"
value="Envoyer" name="B1"></p>
</form> |
Ce qui affiche:
Dans ce cas, la valeur catégorie 1 est affichée par défaut (<option selected value ...), les suivantes (<option value ...) sont aussi possibles. La difficulté est de reprendre non pas des textes et des valeurs fixes comme ci-dessus mais bien des valeurs reprises dans la table.
Commençons par créé un simple formulaire auto invoquant (pour l'instant sans gestion des erreurs) en PHP qui permet d'afficher le choix de la liste.
<?php if (isset($_POST['go'])){ $uid = $_POST['uid']; echo$uid; } $form = "<table> <form METHOD=POST> <form method=\"POST\"> <p><select size=\"1\" name='uid'> <option selected value=\"valeur 1\">catégorie 1</option> <option value=\"valeur 2\">catégorie 2</option> </select></p> <p><input type=\"submit\" value=\"Envoyer\" name=\"go\"></p> </form> </table> <HR>"; print($form); ?> |
Ce petit programme ne fait qu'afficher la valeur correspondant à la catégorie. Si vous sélectionnez catégorie 1, il affiche donc valeur 1. Nous allons modifier ce formulaire plus tard pour qu'il affiche le numéro uid en fonction de l'affichage de la catégorie. Pour l'instant commençons par récupérer les catégories avec leur description dans une variable PHP sous forme de tableau que nous appellerons $categorie-tab
La première partie va reprendre l'ensemble des données dans une variable php sous forme de tableaux.
Dans tous les cas, nous remplissons $categorie_tab['complet'] du nom de la catégorie
<?php $categorie_tab=array(); $requete="SELECT * FROM categorie"; $valeur=mysql_query($requete); $i=0; $ligne=0; while ($tableau=mysql_fetch_array($valeur)){ // on récupère les données de la table // print($ligne); if($tableau['actif']<>"N"){ $categorie_tab[$i]['uid']=$tableau['uid']; $categorie_tab[$i]['nom']=$tableau['nom']; $categorie_tab[$i]['description']=$tableau['description']; $i=$i+1; }else{ print('<br>Catégorie non active'); } } $ligne=$i; <form method=\"POST\"> <p><select size=\"1\" name='uid'>"; while ($i<$ligne){ $uid= $categorie_tab[$i]['uid']; $complet= $categorie_tab[$i]['nom']; $liste=$liste."<option value=".$uid.">".$nom."</option>"; $i=$i+1; } $liste=$liste."<p><input type=\"submit\" value=\"Envoyer\" name=\"go\"></p> </form> <HR>"; echo$liste; ?> |
> 18. Modifications de tables MySQL |
<16 . Table utilisateurs |
Modification: 24/03/2012