par
imedul » 03 août 2007, 11:07
edition:
J'ai fini par trouver. C'était un problème situé plus bas dans le code qui rendait le comportement instable...
Merci pour ta réponse
Modération :
imedul, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).
Désolé! J'y veillerai désormais.
Par ailleurs as-tu afficher la variable $_POST (avec un print_r() par exemple) pour vérifier que l'index prenom y est bien présent ?
Oui, et le comportement est bizarre.
exemple : J'ai 3 prénoms classés dans l'ordre (par la requête) : emilie, ludovic, pierre. Par défaut (avant sélection) c'est emilie qui est affiché. Si je sélectionne ludovic, c'est ok. Ensuite si je sélectionne pierre j'obtiens emilie et $_POST['prenom'] n'est pas renseigné. Et inversement si je choisis d'abord pierre, j'ai le même problème en sélectionnant ludovic.
Et enfin lorsque je sélectionne emilie (le premier de la liste), $_POST['prenom'] est systématiquement vide...
Ce qui est fou c'est que j'utilise exactement la même mécanique pour la sélection des noms, et je n'ai aucun problème !!
J'ai pensé à un problème de navigateur, mais non, avec Opéra ou firefox, j'obtiens le même comportement.
Nota : tu as oublié de délimiter l'attribut value des options sélectionnés par défaut avec des apostrophes ou des guillemets. Si l'un des prénoms est composé ou contient un espace, tu perdras la moitié de sa valeur...
Corrigé!
$br="<br />";
include_once 'fic/fic.php';
include_once 'fic/connexion.php';
echo "Valeur : ".$_POST['prenom'].$br;
print_r ($_POST['prenom']);
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>"; $refPrenom=$prenom; }
}
echo "</select>";
}
echo "</fieldset>";
echo "</form>";