Bonjour à tous,
Voici une énième question au sujet de listes liées, mais à laquelle je n'ai pas trouvé de réponse.
J'ai construit deux listes liées (PHP, MYSQL, AJAX) à partir de 2 tables :
Liste1 à partir de la TABLE1 contenant 2 champs : id1 (clé primaire) et lbl1
Liste2 à partir de la TABLE2 avec 3 champs : id2 (clé primaire) ref_id1 (clé de TABLE1) et lbl2
Liste2 est fonction de la valeur id1 sélectionnée dans Liste1
Tout fonctionne au poil, sauf si je sélectionne dans liste1 l'id1 du premier enregistrement de TABLE1 (soit id1=0). Dans ce cas uniquement, la liste2 est vide (alors qu'elle devrait me sortir 8 lignes).
Pour tout autre choix, la liste2 s'affiche correctement.
Comprend pas...
Si quelqu'un pouvait m'aider à comprendre, et à fixer le problème
pour info, les extraits de code concernés :
listes.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
<!DOCTYPE html>
<html>
...
<body>
...
<?php
$query = "SELECT * FROM TABLE1 ORDER BY lbl1 ASC";
$res = mysqli_query ($db, $query);
$rowCount = mysqli_num_rows ($res);
?>
<select id="liste1">
<option value="">selectionner le lbl1</option>
<?php
if($rowCount > 0)
{
while($row = mysqli_fetch_assoc ($res))
{
echo '<option value="'.$row['id1'].'">'.$row['lbl1'].'</option>';
}
}
else
{
echo '<option value="">pas de lbl1 disponible</option>';
}
?>
</select>
<select id="liste2">
<option value="">selectionner un lbl1 ci-dessus</option>
</select>
...
</body>
</html> |
ajaxlistes.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
<?php
...
if(!empty($_POST["id1"]))
{
$query = "SELECT * FROM TABLE2 WHERE ref_id1 = ".$_POST['id1']." ORDER BY lbl2 ASC";
$res = mysqli_query ($db, $query);
$rowCount2 = mysqli_num_rows ($res);
if($rowCount2 > 0)
{
echo '<option value="">Selectionner le lbl2 </option>';
while($row = mysqli_fetch_assoc ($res))
{
echo '<option value="'.$row['id2'].'">'.$row['lbl2'].'</option>';
}
}
else
{
echo '<option value="">Pas de lbl2 disponible</option>';
}
}
...
?> |
Je peux aussi fournir le javascript si ça peut être utile.
Partager