PHP / Menu deroulant Dynamique Bdd

Résolu/Fermé
dubuducu Messages postés 391 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 19 mai 2010 - 16 juin 2008 à 14:24
chaton1930 Messages postés 40 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 5 août 2009 - 2 juil. 2008 à 16:45
Bonjour,Bonjour,
Voci mon probleme.
Je souhaiterai avoir un menu deroulant dynamique qui fait appel directement aux champs de ma Bdd.
Je recoi des formulaires (devis) classés suivant leur famille (champs : categorie ) et leur sous famille ( champs : thematique_projet)

Voici mon code :
$requete_cat = "SELECT DISTINCT categorie FROM devis_table ORDER BY categorie";
$resultat_cat = mysql_query($requete_cat)
or die ("Exécution de la requête impossible");


$ra = "SELECT DISTINCT thematique_projet FROM devis_table ORDER BY thematique_projet";
$result = mysql_query($ra)
or die ("Exécution de la requête impossible");
//DISTINCT permet d'afficher qu'une fois les données


echo"<b>Choisissez une categorie de devis</b>\n";
echo"<br><br>";
echo "<select name='categorie'>\n";
echo "<option value='null'>Devis</option>";

while ($liste_cat=mysql_fetch_array($resultat_cat))
{
extract($liste_cat);
echo "<option value='$categorie'>$categorie\n";

}
echo " </select>\n";
echo " <BR><BR><BR><BR>";

Je souahiterai savoir la procédure pour que lorsqu je choisise une categorie, cela m'affiche un deuxieme menu deroulant avec la sous famille.

je pense qu'il faut faire une requete du genre:
Select Disctint * From devis_table Where categorie = '" .... je ne sais pas quoi mettre ici "'

puis apres ... je suis pomé ! Merci de votre aide
A voir également:

2 réponses

chaton1930 Messages postés 40 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 5 août 2009 7
1 juil. 2008 à 14:59
Est ce que tu as trouvé la solution à ton problème... parce que j'ai le meme... si c'est le cas dis moi comment tu as fait
Merci
0
dubuducu Messages postés 391 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 19 mai 2010 4
1 juil. 2008 à 16:55
je n'ai pas trouvé la solution mais je me suis renseigné ... il faut utiliser Ajax ou des trucs comme ceux ci bien complexe pour un debutant comme moi.

Alors ma solution a été de faire plusieures pages. Je m'explique :

Ma page menu.php
je choisi le departement et la categorie
A l'aide d'un post je vais vers menu1.php

Menu1.php*
je fais une requete avec la catégorie d'avant concernant la sous_catégorie et ainsi de suite. Meme manipulation

j'ai donc fais des requetes par etapes afin d'arriver a mes choix multiples !!
un peu arcahaique mais fort efficace !

bonne chance
0
JB_A Messages postés 301 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 13 février 2018 5
1 juil. 2008 à 18:28
J'ai un peu le même problème que toi.

J'ai décider d'utiliser un javascript pour recharger la page en envoyant le value du champs de la liste déroulante.

http://www.commentcamarche.net/forum/affich 7172439 liste deroulante et reload

Il ne te reste plus qu'à faire un SQL, qui récupére la variable.

@+
0
chaton1930 Messages postés 40 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 5 août 2009 7
2 juil. 2008 à 16:45
jai la solution je vous poste mon code. Ca marche nickel

<?php 
$idr = isset($_POST['nom_projet'])?$_POST['nom_projet']:null; 

$bdd = mysql_connect('localhost','root','')
	or die("Erreur de connexion au serveur.");

mysql_select_db('gestion',$bdd)
	or die ("erreur de connexion base");

$sql = 'SELECT DISTINCT nom_projet FROM `sous-projet` ORDER BY nom_projet '; 

$sql1 = 'UPDATE metrique SET commentaire = "" where 1';


$req1 = mysql_query($sql1)
	or die ("erreur1");

$req = mysql_query($sql)
	or die ("erreur2");

$num_ligne = mysql_num_rows($req);

while($row = mysql_fetch_array($req) )
{
	$nom_projet[] = $row['nom_projet'];
}
?>
       

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="onglet.css" />
</head>
<body>

<div class="menu4">
</div>

<div class="menu2">
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="formulaire">

<STRONG> Sélectionner un projet : </STRONG>
	<select name="nom_projet" id="nom_projet" onchange="document.forms['formulaire'].submit();"> 
	<?php for($i=0;$i<$num_ligne;$i++){ ?>
	<option value="<?php echo($nom_projet[$i]) ?>" <?php echo((isset($idr) && $idr == $nom_projet[$i])?" selected=\"selected\"":null) ?>> <?php echo $nom_projet[$i] ?></option>
	<?php } ?>
	</select>
<?php
    mysql_free_result($req); 

  if(isset($idr) && $idr != -1)
    { 
	$sql2 = 'SELECT DISTINCT nom_sous_projet FROM `sous-projet`  WHERE `nom_projet` = "'. $idr .'"ORDER BY nom_sous_projet'; 

	$req2 = mysql_query($sql2)
	or die ("erreur3");
	$num_ligne2 = mysql_num_rows($req2);
	//echo $num_ligne2;
	while($row = mysql_fetch_array($req2) )
	{
		$nom_sous_projet[] = $row['nom_sous_projet'];
		//echo $nom_sous_projet[0];
		//echo $nom_sous_projet[1];
	}

}
?>

<P>
</form>
<form action="edit_export.php" method="post">
<STRONG> Sélectionner un sous projet : </STRONG>
	<select name="nom_sous_projet" id="nom_sous_projet">
	<?php for($j=0;$j<$num_ligne2;$j++){ ?>
	<option value="<?php echo($nom_sous_projet[$j]) ?>"> <?php echo $nom_sous_projet[$j] ?> </option>
	<?php }?>
	</select>
<BR>
<BR>
<BR>

<INPUT TYPE=SUBMIT value="Valider" > </INPUT> 

</form>
</div>
</body>
</html> 


j'espère que ça servira à quelqu'un
si vous avez des question n'hésitez pas j'y repondrai avec plaisir dans la limite des capacites bien sur !
0