Sauvegarde du select

lotus -  
 ric -
bonjour,

qq'un pourrait-il me dire comment "garder en mémoire" la valeur du select aprés qu' une erreur éventuelle soit survenu ?

car une fois que le choix est faite ds un select, lorsque je valide le formulaire, une fois la page réaffiché (en considérant que le formulaire contient une erreur d'entrée clavier de la part de l'utilisateur) la valeur du select n'est pas conservé! .... celle ci se remet à la valeur initial.

comment faire pr que la valeur ne reiviennet à l'état intial qu'une fois le formulaire validé?

merci d'avnce
A voir également:

8 réponses

ric
 
Bonjour
Tu fais un formulaire qui s'appelle lui-même en se vérifiant.
Si la saisie est bonne tu traites les données saisies
sinon tu réaffiches le FORM avec les valeurs saisies et qui sont maintenant connues.
Fais une recherche sur les sites PHP.
0
lotus
 
bein oui ça je sais ...

mais en fait pr le select ça ne se "conserve pas"

le bout de code genre:
<select name="fonction" value="<? echo $fonction?>"> marche pas!

alors que pr un autre champ ça passe.

Tu saurais comment réoudre ce pb?

merci
0
niko
 
Hello !
le truc avec les select c'est d'utiliser la valeur par défaut également mais c'est dans <option> quelle est définie:

  <select id="test">
    <option value="1">A
    </option>
    <option value="2"  selected >B
    </option>
  </select>
0
yann
 
si le form se readresse a lui meme il faut remplir le champ value de ton form avec ce qui a été posté ($HTTP_POST_VAR) ou ($HTTP_GET_VAR) en vérifiant que qque chose est posté

ce qui donne

<?
// test si rien n'a ete envoyé on rempli avec du blanc
if ($HTTP_POST_VARS['test'] == null)
{
$test="";
}
else
{
$test=$HTTP_POST_VARS['test'];
}
?>

<form name="form1" method="post" action="./reglement.php">
<input name="test" type="text" value= <? echo $test ?>>
<input type="submit" name="Submit" value="Envoyer">
</form>
0

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

Posez votre question
niko
 
avec du php ça donnerait :
  <select id="test">
    <option value="1" <? echo $HTTP_POST_VARS['test']="1"?"selected":"" ;?>>A
    </option>
    <option value="2" <? echo $HTTP_POST_VARS['test']="2"?"selected":"" ;?> >B
    </option>
  </select>
0
niko
 
pardon c'est des doubles = qu'il faut mettre pour faire des test :
  <select id="test">
    <option value="1" <? echo $HTTP_POST_VARS['test']=="1"?"selected":"" ;?>>A
    </option>
    <option value="2" <? echo $HTTP_POST_VARS['test']=="2"?"selected":"" ;?> >B
    </option>
  </select>
0
ric
 
Inspiré par niko
echo "<select id=\"test\">\n";

echo "<option value=\"ici_la_valeur_1\" ";
echo ($_POST['test']=="ici_la_valeur_1")?"selected":"";
echo ">contenu 1 visible par le visiteur\n";

echo "<option value=\"ici_la_valeur_2\" ";
echo ($_POST['test']=="ici_la_valeur_2")?"selected":"";
echo ">contenu 2 visible par le visiteur\n";
...
les autres options
...
echo "</select><br>\n";
0
ric
 
Et avec moins de PHP
Inspiré par niko
<select id="test">

<option value="ici_la_valeur_1"
<?php echo ($_POST['test']=="ici_la_valeur_1")?"selected":""; ?>>contenu 1 visible par le visiteur

<option value="ici_la_valeur_2"
<?php echo ($_POST['test']=="ici_la_valeur_2")?"selected":""; ?>>contenu 2 visible par le visiteur
...
les autres options
...
</select><br>

Je n'ai pas testé cette version.
0