[php]liste dérouante liée
spaghetti
Messages postés
226
Statut
Membre
-
spaghetti Messages postés 226 Statut Membre -
spaghetti Messages postés 226 Statut Membre -
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 code ascii - Guide
- Liste déroulante en cascade - 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
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:
<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>"; } } ?> </select>Merci