[php]liste dérouante liée

Fermé
spaghetti Messages postés 205 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 24 mai 2013 - 8 mai 2008 à 18:46
spaghetti Messages postés 205 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 24 mai 2013 - 18 mai 2008 à 15:03
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


<!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 30
c'est dans la ligne en gras.
Merci de votre aide.
A voir également:

9 réponses

Daddy Cool Messages postés 68 Date d'inscription samedi 29 mars 2008 Statut Membre Dernière intervention 24 octobre 2014 6
8 mai 2008 à 19:48
$reqt=mysql_query("select nom_t from type where genre ='$res'");

un seul égal ici
0
spaghetti Messages postés 205 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 24 mai 2013 24
8 mai 2008 à 22:25
Bonsoir,
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
0
spaghetti Messages postés 205 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 24 mai 2013 24
9 mai 2008 à 22:46
UP please, je ne connais pas javascript, qui peut m'aider
0
Daddy Cool Messages postés 68 Date d'inscription samedi 29 mars 2008 Statut Membre Dernière intervention 24 octobre 2014 6
12 mai 2008 à 12:09
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:

         
<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.
0
spaghetti Messages postés 205 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 24 mai 2013 24
14 mai 2008 à 19:58
Salut Daddy cool,

She's crazy like a fool
What about it Daddy Cool
Daddy, Daddy Cool
Daddy, Daddy Cool.......lollll..T un fan de BoneyM?

Merci pour ta réponse mais y a rien qui s'affiche dans la deuxième liste déroulante??
est ce que je dois faire une fonction javascript??
0
Daddy Cool Messages postés 68 Date d'inscription samedi 29 mars 2008 Statut Membre Dernière intervention 24 octobre 2014 6
14 mai 2008 à 23:52
rien ne s'affiche dans ton menu déroulant : avant ou après que tu es soumis une première fois ?
0
spaghetti Messages postés 205 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 24 mai 2013 24
15 mai 2008 à 18:34
Non après, je choisi dans la première liste un genre et puis dans la deuxième liste le type ne s'affiche pas!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Daddy Cool Messages postés 68 Date d'inscription samedi 29 mars 2008 Statut Membre Dernière intervention 24 octobre 2014 6
15 mai 2008 à 18:37
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" ?
0
spaghetti Messages postés 205 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 24 mai 2013 24
15 mai 2008 à 23:06
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
0
Daddy Cool Messages postés 68 Date d'inscription samedi 29 mars 2008 Statut Membre Dernière intervention 24 octobre 2014 6
16 mai 2008 à 00:14
`c normal, ta page doit se rechRGER CÔTÉ SERVEUR POUR QUE TA 2EME liste se remplisse

ca n'est pas du javascript
0
spaghetti Messages postés 205 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 24 mai 2013 24
16 mai 2008 à 12:04
et comment je ferai alors pour la recharger?
0
Daddy Cool Messages postés 68 Date d'inscription samedi 29 mars 2008 Statut Membre Dernière intervention 24 octobre 2014 6
18 mai 2008 à 00:46
tu peux la soumettre une 1ère fois
0
spaghetti Messages postés 205 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 24 mai 2013 24
18 mai 2008 à 15:03
J'ai pas compris, comment faire pour que quand je click sur un choix dans la 1ère liste la deuxième se recharge selon le choix effectué dans la 1ère?
0