Conserver la valeur d'un select après une validation [Résolu]

Messages postés
4
Date d'inscription
lundi 25 octobre 2010
Dernière intervention
26 octobre 2010
- - Dernière réponse : Lindaweb
Messages postés
4
Date d'inscription
lundi 25 octobre 2010
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
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
128
Date d'inscription
lundi 21 avril 2008
Dernière intervention
6 mai 2011
3
Merci
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>";
}

Merci cs_ludwig59 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 103 internautes ce mois-ci

Commenter la réponse de cs_ludwig59
Messages postés
2492
Date d'inscription
jeudi 30 novembre 2006
Dernière intervention
14 janvier 2011
0
Merci
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à ;)
Commenter la réponse de neigedhiver
Messages postés
128
Date d'inscription
lundi 21 avril 2008
Dernière intervention
6 mai 2011
0
Merci
Autant pour moi,

Suffit de remplacer
$selected = 'selected';

PAR

$selected = 'selected="selected"';
Commenter la réponse de cs_ludwig59
Messages postés
4
Date d'inscription
lundi 25 octobre 2010
Dernière intervention
26 octobre 2010
0
Merci
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
Commenter la réponse de Lindaweb
Messages postés
4
Date d'inscription
lundi 25 octobre 2010
Dernière intervention
26 octobre 2010
0
Merci
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
Commenter la réponse de Lindaweb
Messages postés
128
Date d'inscription
lundi 21 avril 2008
Dernière intervention
6 mai 2011
0
Merci
Oui il faut bien préciser la fermeture de la balise select avec </select>
Commenter la réponse de cs_ludwig59
Messages postés
4
Date d'inscription
lundi 25 octobre 2010
Dernière intervention
26 octobre 2010
0
Merci
Bien reçu. Merci :)
Commenter la réponse de Lindaweb

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.