Bonjour,
Je suis en train de faire un formulaire qui vérifie si l'adresse mail existe dans la base avant d'enregistrer. Si l'adresse existe je réaffiche le formulaire avec les données saisies par l'utilisateur.
Pour les listes déroulantes je mémorise la donnée saisie dans un tableau pour la réafficher :
Si je saisis une adresse mail qui existe déjà et que j'ai choisi l'Aquitaine ça me réaffiche correctement le formulaire avec "Aquitaine" affiché.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <option selected="selected"> <?php if(isset($_POST['id_region'])){ $region = array (1 => 'Alsace','Aquitaine','Auvergne'); $choix = ($_POST['id_region']); echo $region [$choix]; } else {$choix = "choisissez..."; echo $choix;} ?> </option> <option value="1">Alsace</option> <option value="2">Aquitaine</option> <option value="3">Auvergne</option> </select>
Le problème c'est qu'entre temps la variable $_POST['id_region'] a pris la valeur 0 à cause du "selected".
Conséquence si après le réaffichage du formulaire je refais une validation sans changer l'adresse, au réaffichage il me fait une erreur "undefinited index" (Normal puisque j'essaie d'afficher dans le tableau la valeur $region [0] qui n'existe pas).
Ou si après le réaffichage je change pour une adresse valide, ça m'enregistre le champ "id_région" à 0 dans la base alors que j'avais "Aquitaine" affiché à l'écran.
Comment faire pour que la variable $_POST['id_region'] prenne la valeur affichée après avoir réaffiché le formulaire (2 dans le cas d'Aquitaine)?
Merci d'avance pour votre aide
Partager