Bonjour,

J'ai un formulaire (action=PHP_self) ou je demande a l'utilisateur de remplir les champs et plus particulierement de choisir son sexe (checkbox) et son age (select).
Une fois tous les champs rempli, il clique sur le bouton submit, si il a fait une erreur de saisie il est averti et les champs gardent leur valeur grace a une variable (que l'utilisateur changera si elle est fausse), ça ok, sa marche.
Par contre la valeur du "checkbox checked" a bien l'aire d'etre prise en compte mais il n'est plus checked. Pareil pour le select. Alors que j'aimerai que le choix checked ou selected de l'utilisateur "reste" ou "revienne" checked ou selected.

En gros je veux garder les champs selectionnés apres le submit

J'ai essayé avec if, array, for, foreach, $_session, des tats de solutions sur le web, sans succès. (je debute en php)

Avec mon cerveau j'ai imaginé un code simple, je ne pense pas etre loin de la solution, je pense que l'erreur viens du fait qu'une variable est crée dans true ou false et que sa, php ne doit pas aimé (je connais pas assez encore) ou alors une autre condition que je devrai utilise :

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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
<FORM action=<?php $PHP_SELF;?>>
INPUT type=RADIO id=sexe <?php echo ("$checked1"); ?>name="sexe" value="homme" class=radio>homme<br>
INPUT type=RADIO id=sexe <?php echo ("$checked2"); ?>name="sexe" value="femme" class=radio>femme<br>
<SELECT id=age name=age class=age>
<option value=></option>
<option value=18<?php echo ("$selected18"); ?>>18 </option>
<option value=19<?php echo ("$selected19"); ?>>19 </option>  
</SELECT> ans
<br>
 
 
<?php
if(isset($_POST['sexe']))      
{$sexe=$_POST['sexe'];}
else      
{$sexe="";}
 
if ($sexe="homme")
 {$checked1 = "checked";}
else
{$selected1 = "";}
 
if ($sexe="femme")
 {$checked2 = "checked";}
else
{$selected1 = "";}
 
 
if(isset($_POST['age']))     
{$sexe=$_POST['age];}
else      
{$age="";}

if ($age=18)
 {$selected1 = "selected";}
else
{$selected1 = "";}

if ($age=19)
 {$selected2 = "selected";}
else
{$selected1 = "";}

?>

Je sais aussi que ce code n'est pas terrible, car il faudra que je fasse chaque age de 18 a 70 ans mais si vous avez une solution plus propres, un lien, un tutorial avec la bonne solution je suis prenneur.