HELP !! générer une liste déroulante a partir d une autre liste deroulante
gabs77
Messages postés379Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention 8 octobre 2008
-
19 mars 2006 à 15:24
gabs77
Messages postés379Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention 8 octobre 2008
-
20 mars 2006 à 19:25
bonjour, j ai besoin d aide je ve faire des listes deroulantes dynamiques et le plus simplement possibles
je ve faire une liste deroulante auquel apparaitra lib_classe defini par num_classe
et lorsque l on choisi une classe elle génére les matieres d une autre classe defini par num_matiere et lib_matiere
voila ce ke g fait :
<form action="exemple.php?op=exemple" method="post" name="exemple">
Select N°1 :,
<select size="1" name="S1"> <option value=""></option>
<?
@ $connect = mysql_pconnect($sql_serveur, $sql_user, $sql_pass) or die("Impossible de se connecter à la base de données");
mysql_select_db($sql_database);
$query = "select num_classe,lib_classe from classe_docs";
$result_tab1 = mysql_query($query);
while($tab_S1=mysql_fetch_array($result_tab1))
{
echo "<option value=\"".$tab_S1[num_classe]."\">".$tab_S1[lib_classe]."</option>\n";
}
?>
</select>,
----
Select N°2 :
<select size="1" name="S2">
<option>
</option>
$query = "select num_matiere,lib_matiere from matiere_docs";
$query .= " where classe_docs.num_classe=concerner.num_classe and concerner.num_matiere=matiere_docs.num_matiere and classe_docs.num_classe = '".$tab_S1[num_classe]."'";
$result_tab2 = mysql_query($query);
while($tab_S2=mysql_fetch_array($result_tab2))
{
echo "<option value="".$tab_S2[num_matiere]."">".$tab_S2[lib_matiere]."</option>\n";
</select>
</form>
</html>
A voir également:
HELP !! générer une liste déroulante a partir d une autre liste deroulante
// en admettant que tu re-soumettes la même page bien sûr
...
...
$query . = " where classe_docs.num_classe=concerner.num_classe and
concerner.num_matiere=matiere_docs.num_matiere and
classe_docs.num_classe ='$classe' ";
// assurer une valeur par defaut à $classe
il faut aménager (tester $classe ...) faire deux formulaires peut être
1 pour la premiere selection, un autre pour valider l'ensemble, mais en
gros c'est un truc dans le genre
gabs77
Messages postés379Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention 8 octobre 2008 19 mars 2006 à 19:28
merci beaucoup
juste une chose quand je sélectionne dans ma premiere liste déroulante une donnée
il y a effectivement un rafraichissement de la page mais sa revient au point de départ c'est a dire que la premiere est a nouveau a selectionner et la deuxieme est toujous vide
je rappelle ke je désire générer les choix d une liste déroulantes en fonction d une autre liste déroulante dans la mm page.
je remet mon code dans l integralite :
//connexion a ma base de donnée
<?
$sql_serveur = "localhost"; // Serveur
$sql_user = "root"; // Utilisateur
$sql_pass = ""; // Mot de passe
$sql_database = "intranet"; // Base de données
$classe=$_POST['S1'];
?>
//début de mo formulaire
//premiere liste deroulante
<?
@ $connect = mysql_pconnect($sql_serveur, $sql_user, $sql_pass) or die("Impossible de se connecter à la base de données");
mysql_select_db($sql_database);
$query = "select num_classe,lib_classe from classe_docs";
$result_tab1 = mysql_query($query);
while($tab_S1=mysql_fetch_array($result_tab1))
{
echo "<option value=\"".$tab_S1['num_classe']."\">".$tab_S1['lib_classe']."</option>\n";
}
?>
</select>,
----
Select N°2 :,
//deuxieme liste deroulante
<select size="1" name="S2">
<?
@ $connect = mysql_pconnect($sql_serveur, $sql_user, $sql_pass) or die("Impossible de se connecter à la base de données");
mysql_select_db($sql_database);
$query2 = "select num_matiere,lib_matiere from matiere_docs,concerner,classe_docs";
$query2 = " where classe_docs.num_classe=concerner.num_classe and concerner.num_matiere=matiere_docs.num_matiere and classe_docs.num_classe = '".$classe."'";
$result_tab2 = mysql_query($query2);
while($tab_S2=mysql_fetch_array($result_tab2))
{
...
@ $connect = mysql_pconnect($sql_serveur, $sql_user, $sql_pass) or die("Impossible de se connecter à la base de données");
mysql_select_db($sql_database);
pas besoin de faire deux connexions dans ta page, une seule suffit
et ça devrait marcher normalement
dans le doute fais un echo de ta deuxieme requete sql ($query2)
pour voir si $classe est bien renseigné
gabs77
Messages postés379Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention 8 octobre 2008 20 mars 2006 à 19:25
je te remercie
et désolé juste une chose qui ne veu toujours pas fonctionner:
g ma deuxieme liste déroulantes qui ne veu pas se remplir dans tous les cas
pourtant ma base de donnée est la suivante
concerner: classe_docs:
num_classe num_matiere num_classe lib_classe
1 1 1 BTSIG
2 3 2 BTSMUC
... ...
matiere_docs:
num_matiere lib_matiere
1 analyse
2 algo
3 comptabilité
et mon code est le suivant désormais :
<? $sql_serveur = "localhost"; // Serveur
$sql_user = "root"; // Utilisateur
$sql_pass = ""; // Mot de passe
$sql_database = "intranet"; // Base de données
?>