Version complète: sur le forum Webmaster Hub : Recupere une valeur de liste deroulante
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
zigzou
Déja bonjour a tous!!! wink.gif

G un gros soucis c'est pourquoi je me permet de m'imicer sur ce forum!! tongue.gif En effet ca fait une semaine que je me prend la tete dessus:

je veux effectuer un formulaire possedant plusieurs listes deroulantes où le choix de la premiere liste saisi par l'utilisateur change le contenu de la seconde liste deroulante!

(soit l'utilisateur choisit une donnée dans la premiere liste et en fonction de son choix, la seconde liste prend un contenu different! ) le contenu de ces listes etant des variables prises sur BDD......

je vous met le code actuel, que j'obtiens...

CODE
<?
echo '<td><center><select name="famille">';
   while($family = mysql_fetch_array($famille)){
       $nomfamille[$z1] = $family['nomfamille'];
       $numfam[$z1] = $family['idfamille'];
       echo'<option value='.$numfam[$z1].'>'.$nomfamille[$z1].'</option>';
       $z1++;
   }
   echo'</select></center></td>';
           
   echo '<td><center><select name="sousfamille">';
   
   
   $choix_famille = $_POST['famille'];//Le pb se pose ici je n'obtiens ma valeur que lorsk je clik sur le bouton "submit" (soit le $numfam[$z1] selectionné par l'user)
   
   $sfamille = mysql_query("SELECT DISTINCT idsfamille, nomsfamille FROM ssousfamilles WHERE idfamille='.$choix_famille.'");
   $numsfam = array();
   $nomsfamille = array();
   
   while($sfamily = mysql_fetch_array($sfamille)){
       $nomsfamille[$z2] = $sfamily['nomsfamille'];
       $numsfam[$z2] = $sfamily['idfamille'];
       echo'<option value='.$numfam[$z2].'>'.$nomfamille[$z2].'</option>';
       $z2++;
   }
   echo '</select></center></td>';
?>  



CITATION
$choix_famille = $_POST['famille'];//Le pb se pose ici je n'obtiens ma valeur que lorsk je clik sur le bouton "submit"  (soit le $numfam[$z1] selectionné par l'user)


Voila le soucis est ici! En effet j'aimerais récuperer le choix fait par l'utilisateur dans la premiere liste (sans reload de la page et donc sans bouton submit) pour pouvoir changer le contenu de la seconde liste en fonction du choix (requete sur BDD prenant comme argument le choix de l'utilisateur).

Je sais que la solution dois s'orienté vers du javascript... Or je suis un newb en javascript blink.gif ... Donc malgré mes recherches les resultats se sont averer inutiles!! sad.gif
Prélude
Bonjour,
J'ai fait un ruc similaire il ya un bout de temps : Truc similaire

Si tu veux le code, il est dans la page en javascript.
Y'a plus qu'à remplir en Php.
Si tu as besoin de plus d'infos...
Vincent
Bonjour

Comme le montre Prélude dans son exemple, si tu veux modifier tes listes déroulantes sans faire de submit (donc relancer une requete du coté serveur), il faut absolument que tu ais toutes tes données du coté client donc dans la source de ta page HTML.
La solution la plus efficace pour faire cela serait, a mon avis, de creer dymaniquement en PHP les valeurs de tes variables javascripts en demandant toutes les données pour toutes les familles possible.
CODE
$sfamille = mysql_query("SELECT DISTINCT idsfamille, nomsfamille FROM ssousfamilles ORDER BY idfamille");

ensuite, dans une boucle PHP, tu t'arranges a creer un javascript avec des 'array' ressemblant au javascript de prélude.

Bon courage
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.