Bonjour à tous, voici mon problème :
Je développe un formulaire "écran par écran", avec la possibilité pour l'utilisateur de revenir en arrière lorsqu'il le souhait. Il m'a donc fallu gérer tout le pré-remplissage des champs précédents grâce aux variables de sessions (un bon casse-tête!). Bref, je me retrouve maintenant à l'écran final :
L'utilisateur a la possibilité de cliquer sur un bouton "options" qui le renvoit vers une page contenant le formulaire des options. Dans ce formulaire, se trouvent des cases à cocher. Mon problème : elles doivent être cochée par défaut. Seulement, l'utilisateur peut soit "Valider", ou "Annuler" lorsqu'il est dans ce formulaire d'options. Je n'arrive pas à gérer ce déroulement. Voici comment je fais :
Formulaire avant Options :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if (isset($_POST['villes5a20'])){$_SESSION['villes5a20']= $_POST['villes5a20'];}else{$_SESSION['villes5a20']= '';} if (isset($_POST['villes20a100'])){$_SESSION['villes20a100']= $_POST['villes20a100'];}else{$_SESSION['villes20a100']= '';} if (isset($_POST['villesPlus100'])){$_SESSION['villesPlus100']= $_POST['villesPlus100'];}else{$_SESSION['villesPlus100']= '';} if (isset($_POST['departements'])){$_SESSION['departements']= $_POST['departements'];}else{$_SESSION['departements']= '';} if (isset($_POST['regions'])){$_SESSION['regions']= $_POST['regions'];}else{$_SESSION['regions']= '';} if (isset($_POST['statistiques'])){$_SESSION['statistiques']= $_POST['statistiques'];}else{$_SESSION['statistiques']= '';}
Formulaire Options :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 // Si on est déjà allé dans les options if (isset($_SESSION['villes5a20']))){$villes5a20= 'checked';}else{$villes5a20= '';} if (isset($_SESSION['villes20a100']) && !empty($_SESSION['villes20a100'])){$villes20a100= 'checked';}else{$villes20a100= '';} if (isset($_SESSION['villesPlus100']) && !empty($_SESSION['villesPlus100'])){$villesPlus100= 'checked';}else{$villesPlus100= '';} if (isset($_SESSION['departements']) && !empty($_SESSION['departements'])){$departements= 'checked';}else{$departements= '';} if (isset($_SESSION['regions']) && !empty($_SESSION['regions'])){$regions= 'checked';}else{$regions= '';} if (isset($_SESSION['statistiques']) && !empty($_SESSION['statistiques'])){$statistiques= 'checked';}else{$statistiques= '';} // Si on n'a jamais été dans les options if (!isset($_SESSION['villes5a20'])){$villes5a20= 'checked';} if (!isset($_SESSION['villes20a100'])){$villes20a100= 'checked';} if (!isset($_SESSION['villesPlus100'])){$villesPlus100= 'checked';} if (!isset($_SESSION['departements'])){$departements= 'checked';} if (!isset($_SESSION['regions'])){$regions= 'checked';} if (!isset($_SESSION['statistiques'])){$statistiques= 'checked';}
Et dans mes cases à cocher, j'affiche la variable correspondante à chaque case, qui est soit vide, soit 'checked'. Cependant, avec ce système, les cases se cochent la première fois (grâce aux conditions if (!isset($_SESSION...){$..= 'checked'} ), mais si l'utilisateur fait "Annuler", puis qu'il revient à nouveau dans les options, les cases ne se cochent plus (car les variables de session existent à présent, mais sont vides).
Donc voilà, c'est un casse-tête pour moi, j'espère qu'un esprit clair saura trouver une solution.
Merci d'avance à vous!
Partager