Conserver la valeur d'un select après une validation

Résolu
Lindaweb Messages postés 4 Date d'inscription lundi 25 octobre 2010 Statut Membre Dernière intervention 26 octobre 2010 - 25 oct. 2010 à 11:42
Lindaweb Messages postés 4 Date d'inscription lundi 25 octobre 2010 Statut Membre Dernière intervention 26 octobre 2010 - 26 oct. 2010 à 11:05
Bonjour tout le monde,

Je débute dans la programmation sous PHP et je suis confronter à un problème que je n'arrive pas à résoudre malgré plusieurs tentatives.

J'ai un formulaire qui contient des SELECT pour l'enregistrement d'une date. Je souhaiterai que la valeur sélectionner par l'utilisateur ne s'efface pas après un rafraichissement ou un clic sur mon bouton validation.

Voici le code qui imbrique mon select :



echo '<SELECT name="jour" Size="1" >';
echo '<option value="" selected></option>'; //ligne d'option vide
for($i=1; $i<=31;$i++){ //Lister les jours
if ($i < 10){ //Lister les jours pour pouvoir leur ajouter un 0 devant
echo "<OPTION>0$i
</OPTION>";
}
else {
echo "<OPTION>$i
</OPTION>";
}

J'ai fait un selected sur une value vide car je trouve que cela fait plus propre en arrivant sur le formulaire. Par contre je n'arrive vraiment pas à placer mon code pour garder en mémoire l'option sélectionner par l'utilisateur.

J'ai tester le code suivant que j'utilise pour mes input text sans succès :



echo '<option value="<?php if(!empty($_POST[\'jour\'])){echo $_POST[\'jour\'];} ?>" selected></option>';

Par avance je vous remercie pour vos réponses.

Cordialement,
Linda

7 réponses

cs_ludwig59 Messages postés 128 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 6 mai 2011 2
25 oct. 2010 à 14:23
Bonjour,

En fait c'est le mot clé selected qui te permet de présélectionner l'option voulu.

Essai :

echo '<SELECT name="jour" Size="1" >';
echo '<option value=""></option>'; //ligne d'option vide
for($i=1; $i<=31;$i++)
{
//Lister les jours
$jour = $i;
if ($i < 10) $jour = "0".$jour;


$selected = '';

// si le jour est égale au jour choisi par l'utilisateur, on met la variable selected a 'selected' pour présélectionner l'option
if(isset($_POST['jour']) && $_POST['jour'] == $jour)
{
$selected = 'selected';
}

echo "<OPTION value='".$jour."' $selected>$jour</OPTION>";
}
3
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
25 oct. 2010 à 15:32
Salut,

En HTML correct l'attribut selected a obligatoirement comme valeur selected : selected="selected".

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
0
cs_ludwig59 Messages postés 128 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 6 mai 2011 2
25 oct. 2010 à 15:35
Autant pour moi,

Suffit de remplacer
$selected = 'selected';

PAR

$selected = 'selected="selected"';
0
Lindaweb Messages postés 4 Date d'inscription lundi 25 octobre 2010 Statut Membre Dernière intervention 26 octobre 2010
26 oct. 2010 à 00:30
C'est super, j'adore, ça marche !!!
Ça à l'air tellement simple quand on vous lit !

Merci beaucoup ludwig69 et neigedhiver, vous être géniaux




Linda
0

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

Posez votre question
Lindaweb Messages postés 4 Date d'inscription lundi 25 octobre 2010 Statut Membre Dernière intervention 26 octobre 2010
26 oct. 2010 à 00:45
Heu par contre juste un petit renseignement, doit-on refermer ce code par la ligne suivante ?
ça marche avec ou sans mais bon tant qu'a faire autant faire un code propre ...



echo "</SELECT>";



Linda
0
cs_ludwig59 Messages postés 128 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 6 mai 2011 2
26 oct. 2010 à 08:59
Oui il faut bien préciser la fermeture de la balise select avec </select>
0
Lindaweb Messages postés 4 Date d'inscription lundi 25 octobre 2010 Statut Membre Dernière intervention 26 octobre 2010
26 oct. 2010 à 11:05
Bien reçu. Merci :)
0
Rejoignez-nous