Liste déroulante dependant d'une autre liste deroulante
Raynor911
Messages postés2Date d'inscriptionjeudi 3 février 2005StatutMembreDernière intervention 4 février 2005
-
3 févr. 2005 à 14:19
cs_frop01
Messages postés1352Date d'inscriptionlundi 27 octobre 2003StatutMembreDernière intervention19 novembre 2008
-
5 févr. 2005 à 13:15
Voilà le problème:
J'ai crée deux listes déroulantes dans un formulaire. La deuxième liste doit dependre de la première liste. c'est à dire, que les informations de la deuxième liste doit dependre d'un élément choisi dans la première liste. Voici le code que j'ai tapé:
<?php
require("connect.php");
$sql = "SELECT libelleGrade FROM GRADE Order by libelleGrade";
$result = mysql_query($sql,$CONNEXION);
echo '<select name="grade" id="grade">';
echo "<option selected>---Choisir un item---</option>";
while ($tuple = mysql_fetch_array($result))
{
$grade = $tuple["libelleGrade"];
echo "<option value='.$grade.'>".$grade."</option>";
}
echo "</select>";
?>
</form></td>
<td> </td>
<td><form method="post">
<?php
require ("connect.php"); $sql1 "SELECT * FROM indice where grade '$grade' Order by echelon";
$result1 = mysql_query($sql1,$CONNEXION);
echo "<SELECT NAME = 'echelon'>";
if ($grade =="")
{
echo "<option>Choisissez un grade avant";
}
else
{
while ($tuple = mysql_fetch_array($result1))
{
$grade = $tuple["grade"];
$echelon = $tuple["echelon"];
echo "<option value='.$grade.'>".$echelon."</option>";
}
echo "</select>";
}
?>
la table INDICE est l'association des deux tables GRADE et ECHELON.
INDICE : (grade, echelon, indice)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 3 févr. 2005 à 15:42
Hello,
d'abord, pour recuperer des valeurs d'un formulaire, utilise plutot la
forme $_POST['grade']. Ferme tes balises (<option> n'est a un
moment pas ferme). Indique au formulaire quelle page va le traiter.
Ensuite, tu as plusieurs problemes dans ce script.
- 1er formulaire : il n'est jamais soumis, donc tu ne recuperes pas la valeur de grade.
- 2eme formulaire : tu fais ta requete en fonction de $grade, or $grade est egal, dans ton script, a $grade = $tuple["libelleGrade"]; c'est a dire au dernier resultat obtenu par ta 1ere requete.
Il faut que tu traites le probleme differemmen, et plus
progressivement. Soit tu fais une requete avec un premier
formulaire...tu traites le formulaire, tu recuperes ta valeur grade,
PUIS (apres traitement, et seulement s'il y a eu traitement) tu crees
un 2d formulaire en utilisant la valeur recuperee dans le 1er pour ta
requete.
Soit tu utilises du javascript : le 1er formulaire aura un evenement
onchange, et ce onchange agira sur ta 2eme liste (un seul formulaire
suffit dans ce cas). Mais pour cette option la, va plutot voir sur le
forum javascript.