Variable de Session avec Input

Résolu/Fermé
jeffbeau Messages postés 18 Date d'inscription mardi 21 avril 2009 Statut Membre Dernière intervention 28 mars 2013 - 16 juil. 2009 à 16:40
jeffbeau Messages postés 18 Date d'inscription mardi 21 avril 2009 Statut Membre Dernière intervention 28 mars 2013 - 17 juil. 2009 à 14:32
Bonjour à tous !

Je suis actuellement en train de créer une plateforme de e-mailing.
Pour ceci l'utilisateur de la plateforme à le choix entre différents critères,
Comme : le Sexe (2 checkbox) ou l'âge (2 input text), voir l'exemple après
Après avoir validé, j'aimerai afficher les résultats choisi par l'utilisateur.
C'est à dire de checker (valider) la checkbox si il l'avait checké et/ou de remettre la valeur dans le "input text" précédemment saisie.

Pour cela, j'ai utilisé les variable de Session "$_SESSION[' ']" comme ceci :
Homme 
   <input style="position:relative; top: 2px;" type='checkbox' name="H"
	<?php
	   if( isset($_SESSION['H']) && $_SESSION['H'] == 1)
	    	   echo 'checked ';
	?>
   />


ou encore :
<input type='text' size='10' name="age_inf" value="
     <?php
	if( !empty($_SESSION['age_inf']))
	   echo $_SESSION['age_inf'];
     ?>
" />



Le problème c'est qu'une fois les critères choisi et le bouton "Valider" pressé les critères ne s'affichent pas, mais si j'appuie sur F5 pour recharger la page, les critères choisis auparavant apparaissent.

Si quelqu'un pouvait m'aider :-)

Merci d'avance !

7 réponses

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
16 juil. 2009 à 16:48
Bonjour,

Il faudrait voir à quel moment dans la page tu mets à jour tes variables de session avec les données passées en paramètre. Je suis prêt à parier que tu les places après avoir essayé de les afficher :)

Xavier
0
jeffbeau Messages postés 18 Date d'inscription mardi 21 avril 2009 Statut Membre Dernière intervention 28 mars 2013
16 juil. 2009 à 16:56
Oui, je réinitialise mes variables de Session après les avoir affichées, parce que si je le faisais avant, les input seront tout le temps vides ou non cochés.

Dans l'ordre :

J'affiche mes input (checkbox et text) avec les variables de sessions à l'intérieur pour les mettre check ou pas.
Ensuite je réinitialise toutes variables de session à 0 ou à champs vide : ' ', comme ceci :
$_SESSION['validation_oui'] = 0;
	$_SESSION['validation_non'] = 0;

Enfin je teste si la case a été coché comme ceci :
	if( isset($_POST['validation_oui']) && isset($_POST['validation_non']) ){}
	else
	{
		if( isset($_POST['validation_oui']) )
		{
			$envoyer_email_req .= "And Valide = '2' ";
			$_SESSION['validation_oui'] = 1;
		}
		if( isset($_POST['validation_non']) )
		{
			$envoyer_email_req .= "And Valide = '1' ";
			$_SESSION['validation_non'] = 1;
		}
	}
0
jeffbeau Messages postés 18 Date d'inscription mardi 21 avril 2009 Statut Membre Dernière intervention 28 mars 2013
17 juil. 2009 à 10:50
Up !
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
17 juil. 2009 à 11:14
Bonjour,

Il y a un problème dans l'ordre de tes actions...
Tu affiches les boutons avec les variables de session. Oui, mais elles valent quoi, ces variables ? Rien du tout ! Puisque tu leur assignes leur valeur seulement après...
Ensuite, quand tu raffraîchis, la session se souvient de la valeur précédente des éléments, et c'est pour ça qu'en raffraîchissant tu obtiens ce que tu veux.
Il faudrait que tu mettes tout en haut de ta page :
$voui = isset($_POST['validation_oui']);
$vnon = isset($_POST['validation_non']);
$_SESSION['validation_oui'] = ($voui) ? (($vnon) ? 0 : 1) : 0;
$_SESSION['validation_non'] = ($vnon) ? (($voui) ? 0 : 1) : 0;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jeffbeau Messages postés 18 Date d'inscription mardi 21 avril 2009 Statut Membre Dernière intervention 28 mars 2013
17 juil. 2009 à 11:31
Merci beaucoup pour ta réponse !
ça marche nickel

Par contre je ne comprends pas très bien ce que tu as fait pour que ça réussisse.
Pourrais-tu m'expliquer ce que tu as fait ou me donner l'adresse d'un tutoriel qui explique la méthode que tu as utilisé pour résoudre mon problème ( les '?' avec les ':' )

Encore merci !
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
17 juil. 2009 à 12:45
Ah, les ? et les :, c'est juste une notation simplifiée pour mettre des if.
$_SESSION['validation_oui'] = ($voui) ? (($vnon) ? 0 : 1) : 0;

Revient à
if ($voui)
{
    if ($vnon)
        $_SESSION['validation_oui'] = 0;
    else
        $_SESSION['validation_oui'] = 1;
}
else
    $_SESSION['validation_oui'] = 0;


Ce qui est quand même plus court ;)
0
jeffbeau Messages postés 18 Date d'inscription mardi 21 avril 2009 Statut Membre Dernière intervention 28 mars 2013
17 juil. 2009 à 14:32
Merci beaucoup !!!

Et pour les input text je peux faire la même chose tu crois.
ça sera la même chose mais qu'avec !empty( ) ou des empty( ) ?
0