Menu déroulant dynamique et automatique

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Menu déroulant dynamique et automatique

Re: Menu déroulant dynamique et automatique

par aspkiddy » 02 juin 2011, 16:34

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>" ;

Re: Menu déroulant dynamique et automatique

par Ryle » 01 juin 2011, 22:34

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

par aspkiddy » 01 juin 2011, 20:07

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

par moogli » 31 mai 2011, 21:48

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

@+

Menu déroulant dynamique et automatique

par aspkiddy » 31 mai 2011, 21:42

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: