Récupérer valeur d'une session d'un select [Résolu]

Signaler
Messages postés
37
Date d'inscription
samedi 16 septembre 2006
Statut
Membre
Dernière intervention
5 juillet 2012
-
cs_harmonyk
Messages postés
37
Date d'inscription
samedi 16 septembre 2006
Statut
Membre
Dernière intervention
5 juillet 2012
-
Bonjour !

J'ai un formulaire qui contient un select avec des options.
Si l'utilisateur se trompe, j'aimerais qu'à son retour sur le formulaire le select précédemment choisi soit déjà choisi.
Ca fonctionne très bien avec des varaibles normales, mais pas avec un tableau.
Je précise tout de même que ma variable de session n'est pas vide.
Un code valant mieux que des explications :
<?php
$etudes = array('Sans qualification', 'Bep/Cap', 'Bac/Bac Pro', 'Bac+2', 'Licence', 'Master', 'Doctorat');
$valeurs = array('sq','bc','bb','b2','li','ma','do');
for ($i=0; $i < sizeof($valeurs); $i ++)
{
        if (isset($_SESSION['etudes']) AND $_SESSION['etudes'] == $valeurs[$i])
                echo "<option value='$valeurs[$i]' selected='selected'>$etudes[$i]</option>";
                
        else                                
                echo "<option value='$valeurs[$i]'>$etudes[$i]</option>";                           
}
?>

Le truc qui me chiffonne vraiment, c'est que $_SESSION['etudes'] est bien égal à $valeurs[$i] à un moment, alors qu'apparemment la condition est refusée...
Une idée du pourquoi ?

4 réponses

Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
Salut,

c'est que $_SESSION['etudes'] est bien égal à $valeurs[$i] à un moment

... ce moment est il le bon ?

Une façon simple d'y voir un peu plus clair serait de remplacer la ligne qui suit le else par :


echo "<option value='$valeurs[$i]'>$etudes[$i]." session = ".$_SESSION['etudes']."</option>";

.... la valeur affichée est elle correcte ?


Cordialement,


Kohntark -
Messages postés
37
Date d'inscription
samedi 16 septembre 2006
Statut
Membre
Dernière intervention
5 juillet 2012

Merci kohntark pour ton aide !!
La valeur affichée est effectivement correcte...mais...
En mettant ta ligne en dessous de l'ancienne je me suis aperçu que j(avais un tout petit espace juste après le $valeurs[$i]:
echo "<option value='$valeurs[$i]_'>$etudes[$i]</option>";
Si ca c'est pas une erreur de débutant....Honte à moi !
Merci encore pour ton aide =)
Sujet résolu, je ne peux pas éditer le 1er message ?
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
Je sentais bien un truc dans le genre
Content de t'avoir mis sur la voie.
Il n'y a aucune honte à faire ce genre d'erreur, ça arrive régulièrement, même aux plus "balèzes", le tout est de la détecter rapidement. Pour cela rien de tel qu'un rapide "echo ...", print_r(), var_dump(), debug_backtrace(), ...

je ne peux pas éditer le 1er message ?

Non, pas sur ce site.

Bonne continuation,


Kohntark -
Messages postés
37
Date d'inscription
samedi 16 septembre 2006
Statut
Membre
Dernière intervention
5 juillet 2012

Je ne jure que par le print_r()
Pour palier à ce genre de soucis, je viens de changer la police (ainsi que sa taille) de mon EDI, j'avoue que là au moins je les vois les espaces ^^

Ps: j'avais pas vu le GROS bouton "réponse acceptée"