[php]liste dérouante liée
spaghetti
Messages postés
205
Date d'inscription
Statut
Membre
Dernière intervention
-
spaghetti Messages postés 205 Date d'inscription Statut Membre Dernière intervention -
spaghetti Messages postés 205 Date d'inscription Statut Membre Dernière intervention -
salut,
j'ai une base de données nommée voiture, elle contient deux table: table genre et table type
je veux créer deux listes déroulante la première affiche les genres de voiture contenu dans la table genre, et la deuxième m'affiche le type de voiture en fonction du genre choisi dans la 1ère liste.
je débute en php et je ne sais pas comment faire ceci.
voici le code que j'ai essayer il m'affiche la 1ère liste mais pas la 2ème
le message d'erreur est:
Merci de votre aide.
j'ai une base de données nommée voiture, elle contient deux table: table genre et table type
je veux créer deux listes déroulante la première affiche les genres de voiture contenu dans la table genre, et la deuxième m'affiche le type de voiture en fonction du genre choisi dans la 1ère liste.
je débute en php et je ne sais pas comment faire ceci.
voici le code que j'ai essayer il m'affiche la 1ère liste mais pas la 2ème
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>mon-site</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgt"> Genre véhicule: <select name="genre" id="genre" onchange="document.forms['chgt'].submit();"> <?php mysql_connect(" "," "," ")or die("erreur dans la requette mysql_connect"); mysql_select_db("voiture")or die("erreur dans la requette mysql_select_db"); $req=mysql_query("select nom_g from genre"); while ($res=mysql_fetch_array($req)) { echo "<option>".$res["nom_g"]."</option>"; } ?> </select> <?php if (isset ($res)) { mysql_select_db("voiture")or die("erreur dans la requette mysql_select_db"); $reqt=mysql_query("select nom_t from type where genre=='$res'"); while ($rest=mysql_fetch_array($reqt)) { echo "<option>".$rest["nom_t"]."</option>"; } } ?> </form> </body> </html>
le message d'erreur est:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource on line 30c'est dans la ligne en gras.
Merci de votre aide.
A voir également:
- [php]liste dérouante liée
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Easy php - Télécharger - Divers Web & Internet
- Site dangereux liste - Guide
9 réponses
le problème, c'est que ta page n'est pas correctement construite pour faire ce que tu veux..
Le problème, c'est que lorsque tu clik le premier select, ton formulaire part tout de suite..
Voici une réécriture plus fonctionnelle:
ça devrait être plus fonctionnel comme ça.. par contre, je sais pas si "document.forms['chgt'].submit();" fonctionne, si oui , alors pas de problème.
Le problème, c'est que lorsque tu clik le premier select, ton formulaire part tout de suite..
Voici une réécriture plus fonctionnelle:
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgt"> Genre véhicule: <select name="genre" id="genre" onchange="document.forms['chgt'].submit();"> <?php mysql_connect(" "," "," ")or die("erreur dans la requette mysql_connect"); mysql_select_db("voiture")or die("erreur dans la requette mysql_select_db"); $req=mysql_query("select nom_g from genre"); while ($res=mysql_fetch_array($req)) { if (isset ($_POST['genre']) && $_POST['genre'] == $res["nom_g"]) { $selected = "selected='selected'"; }else{ $selected = ""; } echo "<option ".$selected.">".$res["nom_g"]."</option>"; } ?> </select> <select name="type" id="type" onchange="document.forms['chgt'].submit();"> <?php if (isset ($_POST['genre'])) { mysql_select_db("voiture")or die("erreur dans la requette mysql_select_db"); $reqt=mysql_query("select nom_t from type where genre = '".$_POST['genre']."'"); while ($rest=mysql_fetch_array($reqt)) { echo "<option>".$rest["nom_t"]."</option>"; } } ?> </select> </form>
ça devrait être plus fonctionnel comme ça.. par contre, je sais pas si "document.forms['chgt'].submit();" fonctionne, si oui , alors pas de problème.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
on parle bien de la même chose j'espère.. je suis pas sur du comportement de ta page. Quand tu clik la première boite, ta page est "rechargée" ?
A ok j'ai pas bien compris, en fait quand je click dans la première liste y 'a rien qui s'affiche dans la deuxième
`c normal, ta page doit se rechRGER CÔTÉ SERVEUR POUR QUE TA 2EME liste se remplisse
ca n'est pas du javascript
ca n'est pas du javascript
merci pour ta réponse, y'a pas de message d'erreur maintenant mais lorsque je sélectionne un genre de la 1ère liste déroulante, la deuxième liste s'affiche mais elle est vide. j'ai du faire une erreur on utilisant onchange peut être parce qu'on faite je la connais pas je l'ai fais au hasard ou bien l'erreur est ici:
Merci