Boites déroulantes dépendantes
Posté : 03 août 2007, 10:07
Bonjour à tous,
J'alimente 2 boites déroulantes (nom et prénom) à l'aide de requêtes Mysql, la deuxième dépendant du choix effectué sur la première. Les requêtes fonctionnent bien.
La mise à jour de la page s'effectue par un réaffichage (onChange='this.form.submit()). Les données sont transmises en POST. Or je ne récupère pas la valeur du deuxième champ ($_POST['prenom']) pourtant renseigné.
Et comme je teste l'éventuel contenu de chaque $_POST['variable'] pour positionner l'option "selected", je ne peux pas figer le choix effectué dans la deuxième boîte.
J'ai retourné le problème dans tous les sens et je ne comprends pas.
Vos lumières seront plus que bienvenues...
Ci-dessous le code.
Merci d'avance
include_once 'fic/fic.php';
include_once 'fic/connexion.php';
echo "
<form name=\"contact\" method=\"POST\" action=\"index.php\">
<fieldset id=\"coordonnees\">
<legend>Vos coordonnées</legend>";
echo "
<select name='nom' onChange='this.form.submit()'>";
$req="select distinct nom from data";
$reqres=mysql_query($req) or dir ("Pb4");
while ($ligne=mysql_fetch_array($reqres)) {
extract ($ligne);
if ($nom!=$_POST['nom']) { echo "<option value='$nom'>$nom</option>"; }
else { echo "<option value=$nom SELECTED>$nom</option>"; $refNom=$nom; }
}
echo "</select>";
if(!empty($refNom)) {
echo "
<select name='prenom' onChange='this.form.submit()'>";
$req="select distinct prenom from data where nom='$refNom' order by prenom";
$reqres=mysql_query($req) or dir ("Pb4");
while ($ligne=mysql_fetch_array($reqres)) {
extract ($ligne);
if ($prenom!=$_POST['prenom']) { echo "<option value='$prenom'>$prenom</option>"; }
else { echo "<option value=$prenom SELECTED>$prenom</option>"; }
}
echo "</select>";
}
echo </fieldset>";
echo "</form>";
J'alimente 2 boites déroulantes (nom et prénom) à l'aide de requêtes Mysql, la deuxième dépendant du choix effectué sur la première. Les requêtes fonctionnent bien.
La mise à jour de la page s'effectue par un réaffichage (onChange='this.form.submit()). Les données sont transmises en POST. Or je ne récupère pas la valeur du deuxième champ ($_POST['prenom']) pourtant renseigné.
Et comme je teste l'éventuel contenu de chaque $_POST['variable'] pour positionner l'option "selected", je ne peux pas figer le choix effectué dans la deuxième boîte.
J'ai retourné le problème dans tous les sens et je ne comprends pas.
Vos lumières seront plus que bienvenues...
Merci d'avance
include_once 'fic/fic.php';
include_once 'fic/connexion.php';
echo "
<form name=\"contact\" method=\"POST\" action=\"index.php\">
<fieldset id=\"coordonnees\">
<legend>Vos coordonnées</legend>";
echo "
<select name='nom' onChange='this.form.submit()'>";
$req="select distinct nom from data";
$reqres=mysql_query($req) or dir ("Pb4");
while ($ligne=mysql_fetch_array($reqres)) {
extract ($ligne);
if ($nom!=$_POST['nom']) { echo "<option value='$nom'>$nom</option>"; }
else { echo "<option value=$nom SELECTED>$nom</option>"; $refNom=$nom; }
}
echo "</select>";
if(!empty($refNom)) {
echo "
<select name='prenom' onChange='this.form.submit()'>";
$req="select distinct prenom from data where nom='$refNom' order by prenom";
$reqres=mysql_query($req) or dir ("Pb4");
while ($ligne=mysql_fetch_array($reqres)) {
extract ($ligne);
if ($prenom!=$_POST['prenom']) { echo "<option value='$prenom'>$prenom</option>"; }
else { echo "<option value=$prenom SELECTED>$prenom</option>"; }
}
echo "</select>";
}
echo </fieldset>";
echo "</form>";