Rechercher : dans
Par :

PHP / Menu deroulant Dynamique Bdd

Dernière réponse le 2 jui 2008 à 16:45:53 dubuducu, le 16 jun 2008 à 14:24:02 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Internet Explorer 6.0

1

chaton1930, le 1 jui 2008 à 14:59:30

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

Répondre à chaton1930

2

dubuducu, le 1 jui 2008 à 16:55:47

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

Répondre à dubuducu

3

JB_A, le 1 jui 2008 à 18:28:41

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.

@+

Répondre à JB_A

4

 chaton1930, le 2 jui 2008 à 16:45:53
  • +1

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 !

Répondre à chaton1930