Recuperer ID d'un "SELECT" en php
Hikashi
-
Alain_42 Messages postés 5413 Statut Membre -
Alain_42 Messages postés 5413 Statut Membre -
Bonjour, je suis bien conscient qu'il existe d'autre articles répondant à ce problème mais je n'arrive tout de même pas à résoudre le mien...
Information importante :
J'ai deux tables :
CATEGORIE(N°Categorie, LibelleCategorie)
SOUS_CATEGORIE(N°SousCategorie, LibelleSousCategorie, #N°Categorie)
Je veux remplir une première listebox avec mes catégories, et je veux remplir la 2eme en fonction du choix de la première, et ceci en php.
Voici mon code :
Le problème est que je n'arrive pas à récupérer l'id de la première listebox pour remplir la deuxième, de plus, je me demandais si c'était la méthode à effectuer.
Je vous remercie pour votre aide.
Hikashi
Information importante :
J'ai deux tables :
CATEGORIE(N°Categorie, LibelleCategorie)
SOUS_CATEGORIE(N°SousCategorie, LibelleSousCategorie, #N°Categorie)
Je veux remplir une première listebox avec mes catégories, et je veux remplir la 2eme en fonction du choix de la première, et ceci en php.
Voici mon code :
<select name = "Categorie" STYLE="width:71">
<?php
$listecategorie = 'SELECT * FROM Categorie;';
$query = mysql_query($listecategorie) or die('Erreur');
$nb = mysql_num_rows($query);
if ($nb[0])
{
echo '<option>Aucune catégorie</option>';
}
else
{
while ($list = mysql_fetch_array($query))
{
echo '<option value="'.$list['N°Categorie'].'">'.$list['LibelleCategorie'].'</option>';
}
}
?>
</select>
<select name = "SousCategorie" STYLE="width:71">
<?php
$listesouscategorie = "SELECT * FROM Sous_Categorie WHERE N°Categorie =".$_POST['Categorie']." ";
$query_sc = mysql_query($listesouscategorie) or die('Erreur');
$nb_sc = mysql_num_rows($query_sc);
if ($nb_sc[0])
{
echo '<option>Aucune catégorie</option>';
}
else
{
while ($list_sc = mysql_fetch_array($query_sc))
{
echo '<option value="'.$list_sc['N°SousCategorie'].'">'.$list_sc['LibelleSousCategorie'].'</option>';
}
}
?>
</select>
Le problème est que je n'arrive pas à récupérer l'id de la première listebox pour remplir la deuxième, de plus, je me demandais si c'était la méthode à effectuer.
Je vous remercie pour votre aide.
Hikashi
3 réponses
-
pourquoi l'ID,
voici une méthode, pas testé, il peut subsister qqs fautes de frappe:<?php if(isset($_POST['Categorie'])){ $categorie=$_POST['Categorie']; }else{ $categorie=""; //initialisation à vide par defaut et pour le premier affichage } ?> <form name=""form1" method="post" action="" > <select name = "Categorie" onchange="submit();" style="width:71"> <option value="" >--choisissez--</option> <!-- ligne obligatoire pour avoir onchange à chaque fois --> <?php $listecategorie = 'SELECT * FROM Categorie;'; $query = mysql_query($listecategorie) or die('Erreur'); $nb = mysql_num_rows($query); //c'est un nompbre if ($nb==0) { echo '<option>Aucune catégorie</option>'; } else { ?> <select name = "Categorie" onchange="submit();" style="width:71"> <?php while ($list = mysql_fetch_array($query)) { $option= '<option value="'.$list['N°Categorie'].'"'; if($categorie==$list['N°Categorie']) {$option.='selected="seleted"';} //ça c'est pour conserver la sélection au réaffichage $option.=' >'.$list['LibelleCategorie'].'</option>'; echo $option; } ?> </select> <?php } ?> <?php if(isset($_POST['Categorie']) && $_POST['Categorie'] !=""){ $categorie=mysql_real_escape_string($_POST['Categorie']); //securité ?> <select name = "SousCategorie" style="width:71"> <?php $listesouscategorie = "SELECT * FROM Sous_Categorie WHERE N°Categorie =".$categorie." "; $query_sc = mysql_query($listesouscategorie) or die('Erreur'); $nb_sc = mysql_num_rows($query_sc); //c'est un nompbre if ($nb_sc==0]) { echo '<option>Aucune catégorie</option>'; } else { while ($list_sc = mysql_fetch_array($query_sc)) { echo '<option value="'.$list_sc['N°SousCategorie'].'">'.$list_sc['LibelleSousCategorie'].'</option>'; } } ?> </select> <?php } //fin if isset($_POST['Categorie'] ?> </form> -
Je te remercie pour ta réponse ! Je vais tester cela ! J'ai un pti problème au niveau du
if ($nb_sc==0])
J'ai l'erreur Parse error: syntax error, unexpected ']' donc je vais regarder ça ! Merci en tout cas :) -
voila une faute de frappe qui subsiste
j'ai pas enlevé le ]
if ($nb_sc==0])
if ($nb_sc==0)