Liste déroulantes

Résolu/Fermé
jourdanne85 Messages postés 27 Date d'inscription dimanche 14 décembre 2008 Statut Membre Dernière intervention 20 octobre 2009 - 28 janv. 2009 à 16:38
jourdanne85 Messages postés 27 Date d'inscription dimanche 14 décembre 2008 Statut Membre Dernière intervention 20 octobre 2009 - 29 janv. 2009 à 07:20
Bonjour,

Je tiens à dire que je suis un débutant, alors excusez-moi d'avance pour les questions "cons".

Voilà, je souhaite réaliser plusieurs listes déroulantes à partir d'une BDD sur le site d'un garage automobile.
Pour bien comprendre, j'ai une liste "MARQUE" une autre "MODELE" et ainsi de suite.

J'ai 2 problèmes.
1/ J'essaye tout d'abord d'afficher tout le contenu de la BDD pour la liste "MARQUE".Mais, il m'affiche
plusieurs fois la même marque dans ma liste déroulante (j'ai plusieurs RENAULT par exemple dans la BDD).
Voir code :

<form method="post" action="recherche_vehicule.php">
<select name="carrosserie" id="carrosserie">
<?php
mysql_connect("localhost","root","");
mysql_select_db("garagedurand");
$reponse = mysql_query("SELECT * FROM auto ") or die(mysql_error());
?>
<option value="*">LES CARROSSERIES</option>
<?php
while($carros = mysql_fetch_array($reponse))
<option value="<?php echo $carros['carrosserie']; ?>"><?php echo $carros['carrosserie']; ?></option>
<?php
}
?>
</select>


2/ Je dois lier les différentes listes déroulantes. Par exemple, si je choisis la marque MERCEDES dans une liste,
il faut que la liste "MODELE" ne m'affiche que les modèles de la marque MERCEDES.
J'ai commencé à regarder dans les forums la solution mais je ne maitrise pas du tout le JAVASCRIPT.
Je voudrai savoir si je suis obligé d'utiliser le Javascript où s'il existe une autre solution.

Je vous remercie par avance.

7 réponses

chupa23 Messages postés 149 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 20 juillet 2009 28
28 janv. 2009 à 17:00
Bonjour ,

Pour le 1er problème , regarde du coté de distinct en sql.
SELECT distinct marque, champ1, champ2 FROM auto

Donc ça va récupérer les marques différentes seulement, je pense que c'était que tu souhaitais.

Pour le 2ème problème ,il faut utiliser un attribut dans le même genre que onchange sur le 1er formulaire qui enverrai la marque,ensuite tu récupère la marque envoyé puis tu fais une requête avec celle ci.
Il doit y avoir d'autres solutions , celle ci est la simple je pense bien que certain n'aime pas voir utiliser onchange.
0
muska92 Messages postés 277 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 14 août 2009 42
28 janv. 2009 à 17:01
salut déjà commence par optimisé un peut ton code :

<form method="post" action="recherche_vehicule.php">
<select name="carrosserie" id="carrosserie">

<option value="*">LES CARROSSERIES</option>
<?php
mysql_connect("localhost","root","");
mysql_select_db("garagedurand");
$reponse = mysql_query("SELECT distinct * FROM auto ") or die(mysql_error());

while ($carros = mysql_fetch_array($reponse)) {

echo '<option value="'.$carros['carrosserie'].'">'.$carros['carrosserie'].'</option>';

}
?>

</select>

Puis pour lier les liste faut regarder du coté d'AJAX
0
jojodivx Messages postés 193 Date d'inscription dimanche 14 décembre 2008 Statut Membre Dernière intervention 9 avril 2009 16
28 janv. 2009 à 17:02
Et n'oublie pas de fermer la connexion :)
0
chupa23 Messages postés 149 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 20 juillet 2009 28
28 janv. 2009 à 17:08
Muska92 , un distinct * marche -t-il correctement ? Je n'ai jamais essayé , je ne dis pas que c'est faux mais ça me semble bizarre. Ça fait un distinct sur tous les champs ,non ? Pas top si par exemple il stock l'année dans sa table.
0

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

Posez votre question
jourdanne85 Messages postés 27 Date d'inscription dimanche 14 décembre 2008 Statut Membre Dernière intervention 20 octobre 2009
28 janv. 2009 à 17:18
Merci beaucoup de vous préoccuper de mes problèmes.
J'ai essayé le " distinct * " et cela ne marche pas.
Par contre, je l'ai remplacé par " distinct carrosserie", et là il m'affiche bien juste les différents types de carrosseries de la BDD.
Donc pour ceci il n'y a plus de problèmes et je vous remercie.

Pour ce qui est de lier les listes que pensez-vous de la fonction onchange (que je ne connais pas d'ailleurs).
Pour la méthode avec AJAX, où puis-je trouver un tutoriel où des infos ?

Merci encore.
0
muska92 Messages postés 277 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 14 août 2009 42
28 janv. 2009 à 19:16
tien un bon tuto sur le requet ajax pour les liste lier
https://siddh.developpez.com/articles/ajax/
0
jourdanne85 Messages postés 27 Date d'inscription dimanche 14 décembre 2008 Statut Membre Dernière intervention 20 octobre 2009
29 janv. 2009 à 07:20
Merci beaucoup pour le lien.
Je vais essayer de faire le tuto et on verra bien si je comprends tout.

Merci encore
0