Page 1 sur 1

Select intéractifs

Posté : 07 août 2014, 14:09
par fwe
Bonjour,

Voici mon problème:

Je créé un 1er select pour sélectionner la marque de ma moto:
<?php
	//Select Constructeur moto
	$constructeur = 'SELECT constructeur_moto_id,constructeur_moto_nom FROM a_constructeur_moto ORDER BY constructeur_moto_nom';
	
	$constructeur_query = mysql_query($constructeur) or die( 'Erreur' );
		echo '<option>Constructeur Moto</option>';
		while ( $constructeur_list = mysql_fetch_array( $constructeur_query ) ) {
			echo '<option value="'.$constructeur_list['constructeur_moto_id'].'">'.$constructeur_list['constructeur_moto_nom'].'</option>';
	}
	mysql_close();
?>
Je créé un 2ème select contenant les modèles des marques de moto:
<select name="modele_moto_nom">
<?php
	//Select Modèle moto
	$modele = 'SELECT modele_moto_id,modele_moto_nom,constructeur_moto_nom FROM a_modele_moto ORDER BY modele_moto_nom';
	
	$modele_query = mysql_query($modele) or die( 'Erreur' );
		echo '<option>Selectionnez d'abord un Constructeur Moto</option>';
		while ( $modele_list = mysql_fetch_array( $query ) ) {
			echo '<option value="'.$modele_list['modele_moto_id'].'">'.$modele_list['modele_moto_nom'].'</option>';
	}
	mysql_close();	
?>
</select>
J'aimerai que tant que la valeur du 1er select est "Constructeur Moto", le 2ème select affiche "Selectionnez d'abord un Constructeur Moto".
Une fois que l'on a choisi une marque de moto dans le 1er select (par exemple DUCATI), j'aimerai qu'apparaisse dans le second select tous les modèles de moto dont le "constructeur_moto_nom" est celui séléctionné (dans ce cas tous les modèles du constructeur DUCATI).

Merci d'avance!

Fwe

Re: Select intéractifs

Posté : 07 août 2014, 15:34
par xTG
Tu trouveras toutes tes réponses dans ce tutorial :
faq-tutoriels/listes-liees-avec-html-ja ... 55580.html
Bonne lecture. :)

Re: Select intéractifs

Posté : 07 août 2014, 16:30
par fwe
Merci pour la réponse.

Je me demandais si le javascript était obligatoire ou si le php pouvait gérer ça tout seul?

Merci

Re: Select intéractifs

Posté : 07 août 2014, 19:45
par xTG
Tu peux gérer cela par du PHP en effet.
Postes ton formulaire vers la même page.
N'exécutes la seconde requête que si tu as un constructeur_moto_id, sinon affiches ton option voulu avec comme valeur 0 (un id moto qui n'existe pas dans ta base de données en gros).
Et dans le premier select vérifies l'id retourné par la requête et l'id posté par le formulaire. Si l'id concorde rajoutes SELECTED à ton option pour le sélectionner afin que l'utilisateur ne perde pas son choix.

Et donc pour ton traitement final il te faut un id constructeur non vide et un id moto différent de 0.

Re: Select intéractifs

Posté : 09 août 2014, 16:57
par fwe
Bonjour,

Je reviens encore parce que le tutoriel ne correspond pas à ma demande. J'ai la contrainte de récupérer en BDD des données et d'afficher différentes valeur en fonction de ces données. La tout est en dur dans l'exemple alors que j'aimerai que tout soit lié à ma BDD et aux valeurs des tables.

F.

Re: Select intéractifs

Posté : 09 août 2014, 17:44
par sirakawa
En php, ca doit donner un truc dans ce genre:
Si $_POST['marque'] existe et est valide (on est passé une fois)
on fait une requete dans la BDD sur les modèles de la marque
et on crée un formulaire
Sinon
on fait une requete dans la BDD sur les marques
et on crée un formulaire qui rappelle la même page