Page 1 sur 1

bouton checkbox et session ?

Posté : 13 avr. 2014, 22:39
par wwwbillgates
Bonjour, je voudrais créer une variable de session grâce à un bouton checkbox, alors lorsque je clic sur le bouton la variable a bien pour valeur 1 et lorsque celle-ci est décoché elle a bien la valeur 0.
Cependant, le problème se trouve lorsque ma session est à 1 et que je recharge ma page, car alors ma session deviens 0. Hors je voudrais que 1 soit mémorisé dans ma session lorsque je recharge ma page. Petit truc qui me paraissait simple et pourtant ca fait des heures que je suis dessus #-o

if (isset($_POST['traitement_prioritaire'])) {
	$_SESSION['traitement_prioritaire'] = 1;
}
else {
	$_SESSION['traitement_prioritaire'] = 0;
}
echo $_SESSION['traitement_prioritaire'];

Re: bouton checkbox et session ?

Posté : 14 avr. 2014, 06:58
par morganK
Quand tu recharges la page, isset($_POST... renvoie false et donc ta variable de session prend la valeur 0.

Re: bouton checkbox et session ?

Posté : 14 avr. 2014, 10:59
par wwwbillgates
Quand tu recharges la page, isset($_POST... renvoie false et donc ta variable de session prend la valeur 0.
heuu oui je sais :) cest pour cela que je souhaiterais savoir comment faire pour que justement ma session ne devienne pas 0 mais reste mémorisé à 1 lorsque cette page est rechargé ?

Re: bouton checkbox et session ?

Posté : 14 avr. 2014, 11:58
par morganK
Le truc c'est que si tu recharges ta page, le formulaire va être soumis une nouvelle fois. Tu peux ajouter un test dans ton if pour vérifier l’existence de ta variable de session et ainsi lui assigner une valeur seulement si elle l'existe pas. Ou bien tu peux également faire une redirection sur ta page avec un header('location:...'); ce qui fait que ton formulaire ne sera plus en mémoire.

Re: bouton checkbox et session ?

Posté : 14 avr. 2014, 19:38
par wwwbillgates
Javais oublié de préciser que le rechargement de la page se faisait sur cette meme page avec action="#". Et comme je vien de trouver la soluce, la voici :

j'ai rajouté dans le form un :
<input type="hidden" name="traitement_prioritaire_clic" value="1"/>

et ensuite mon code est :
if (isset($_POST['traitement_prioritaire_clic']) and isset($_POST['traitement_prioritaire'])) {

	$_SESSION['traitement_prioritaire'] = 1;

}
elseif (isset($_POST['traitement_prioritaire_clic']) and !isset($_POST['traitement_prioritaire'])) {
	$_SESSION['traitement_prioritaire'] = 0;
}
echo $_POST['traitement_prioritaire'];
merci pour ton aide MorganK A+