Page 1 sur 1

Menu déroulant dynamique et automatique

Posté : 31 mai 2011, 21:42
par aspkiddy
Bonjour,

J'ai un formulaire où j'affiche les âges des utilisateurs et leurs noms...

Voici le code :

Code : Tout sélectionner

<?php include"bd_db/connection.php"; include"bd_db/selection.php"; $req= " select bd_age,bd_nom FROM $table_db "; $rep = mysql_query($req, $cnx) or die( mysql_error() ) ; while($row=mysql_fetch_row($rep)){ $var_age=$row[0]; $var_nom=$row[1]; echo "<tr><td>$var_age</td><td>$var_nom</td></tr>" ; } ?>
Ça fonctionne...:)

Je vais mettre un menu déroulant au lieu d'afficher tous les ages dans la table...
Donc ce menu déroulant va prendre les infos dans la bdd MySql.

J’arrive afficher les valeurs dans mon menu.

Voici mon code

Code : Tout sélectionner

<select name="age_menu" id="age_menu" onchange="submit()"> <?php echo "<option selected=\"selected\" value='null'>Choissiez une option</option>"; $res = " select bd_age FROM $table_db "; $rep_menu = mysql_query($res, $cnx) or die( mysql_error() ) ; while($affiche_contenu = mysql_fetch_assoc($rep_menu)) { echo '<option value="'.$affiche_contenu['bd_age'].'">'.$affiche_contenu['bd_age'].'</option>'; } ?> </select>
1er question : comment je peux regrouper les informations::rolleyes:
Exemple
+---------+-------------+----------+
| ID | bd_age | bd_nom |
+---------+-------------+----------+
| 1 | 5 ans | nathalie |
| 2 | 5 ans | alice |
| 3 | 2 ans | nathalie |
| 4 | 2 ans | john |
| 5 | 10 ans | gilles |
+---------+-------------+----------+
En fait avec le code actuel, les options de mon menu sont 2 fois "5 ans", 2 fois "2 ans" et une fois "10 ans". Comment je peux afficher seulement 3 options au lieu de 5 options (sans répéter) ?:rolleyes:



2e question : comment je peux afficher les résultats de ce menu, par exemple : lorsque l'on sélecte 5 ans, il faut que j'affiche Nathalie et Alice...:rolleyes:

Re: Menu déroulant dynamique et automatique

Posté : 31 mai 2011, 21:48
par moogli
salut,

pour le 1er utilise distinct (par exemple select distinct age from table).

Pour la suite soit tu recherche la page (et donc une simple requête select prenom from table where age=$_POST['champ formulaire'] suffit).

soit la requête est la même mais tu utilise AJAX pour le faire sans rechargement de la page ;)

@+

Re: Menu déroulant dynamique et automatique

Posté : 01 juin 2011, 20:07
par aspkiddy
Merci moggli,

Merci, ca marche : lorsqu’on sélectionne un article dans 1er écran, et on click sur le bouton envoyer pour afficher les résultats dans la 2e page
j'ai une question : comment je peux afficher les informations dans 1er (le même) écran où il y a le menu déroulant lorsqu’un article a été sélectionné par l"utilisateur sans cliquer sur un bouton "Envoyer" ?

Re: Menu déroulant dynamique et automatique

Posté : 01 juin 2011, 22:34
par Ryle
Tu peux utiliser l'attribut onchange du select pour détecter la sélection d'un age et soumettre le formulaire automatiquement en javascript...

Le forum FAQ contient des explications détaillées sur ce sujet :
:arrow: Formulaires : Listes déroulantes dynamiques liées

Re: Menu déroulant dynamique et automatique

Posté : 02 juin 2011, 16:34
par aspkiddy
voila la solution

Code : Tout sélectionner

<select name="age_menu" id="age_menu" onChange="location.href='?age='+this.value;">
( plus loin)

Code : Tout sélectionner

$age=0+@$_GET['age']; $cherche_option_menu = " select bd_nom,bd_age FROM $table_db WHERE bd_age =".$age; $rep_cherche_option_menu = mysql_query($cherche_option_menu, $cnx) or die( mysql_error() ) ; while($row_menu=mysql_fetch_row($rep_cherche_option_menu)){ $var_nom=$row_menu[0]; echo "<table><tr><td>$var_nom</td><td></tr></table>" ;