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

Lindaweb 4 Messages postés lundi 25 octobre 2010Date d'inscription 26 octobre 2010 Dernière intervention - 25 oct. 2010 à 11:42 - Dernière réponse : Lindaweb 4 Messages postés lundi 25 octobre 2010Date d'inscription 26 octobre 2010 Dernière intervention
- 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
cs_ludwig59 128 Messages postés lundi 21 avril 2008Date d'inscription 6 mai 2011 Dernière intervention - 25 oct. 2010 à 14:23
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

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

Suffit de remplacer
$selected = 'selected';

PAR

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