conserver un choix dans une liste déroulante dans formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : conserver un choix dans une liste déroulante dans formulaire

par ouckileou » 09 mai 2006, 13:32

pour ceux que ça peut interesser, voila la soluce ;)
Comme celles de beaucoup d'autres problèmes, la solution au tien était dans la FAQ :
Pré-positionner une liste déroulante

Pense à regarder de temps en temps ;)

par BeRoots » 09 mai 2006, 12:09

ooops, en effet :?

j'ai corrigé mon précedent message et maintenant sa colle :wink:

en effet pour la première balise cela fonctionne mais j'avais un petit soucis avec un accent pour mes test :?

remarque importante: si vous utiliser des caractères spéciaux dans un nom de choix, il faudra les écrire tel quel dans la boucle IF même si il sont écrit au format iso ou unicode pour html entre les balise options.

ex:
<option<?php if($bidule == 'René') {echo " selected";} ?>>Ren&eacute;</option>
par contre je reste sur l'idée que pour chaque premier choix d'une liste, il est inutile de faire ainsi car ce premier choix à priorité sur tout les autres et est de ce fait sélectionner par défault.

si quelqu'un pense pouvoir démontrer le contraire, merci de le faire savoir via ce sujet afin d'en faire profité tous le monde ;)

par Ryle » 08 mai 2006, 21:01

bah si, ca doit marché pareil pour la première, mais c'est vrai que c'est pas utile dans ton cas :)

Par contre juste une petite remarque, il faut que la valeur que tu testes dans le if soit les mêmes que celles dans l'option (par rapport aux expaces) :
<option<?php if($bidule == 'choix 2') {echo " selected";} ?>>choix2</option>

par BeRoots » 08 mai 2006, 19:40

j'ai enfin reussi :D

pour ceux que ça peut interesser, voila la soluce ;)
<?php
// recuperation en variable du contenu de la liste
$bidule = $_POST['bidule'];
?>

<select name="bidule" id="label_groupe" size="1">
<option>choix 1</option>
<option<?php if($bidule == 'choix 2') {echo " selected";} ?>>choix 2</option>
<option<?php if($bidule == 'choix 3') {echo " selected";} ?>>choix 3</option>
</select>
l'option choix 1 etant en premiere position, elle n'a pas besoin de recevoir "selected" car elle est automatiquement selectionnée (en plus ça ne marche pas sur elle mais j'ai pas vraiment saisi pour quoi :-k )
voili voilou !!! encore merci Ryle ;)

par BeRoots » 08 mai 2006, 11:59

en gros un truc comme ceci :-k
<select name="groupe" id="label_groupe" size="1">
<option <?php if($_post['groupe'] == 'choix 1') echo "selected"; ?>>choix 1</option>
<option <?php if($_post['groupe'] == 'choix 2') echo "selected"; ?>>choix2</option>
</select>
j'essayer et je vous tient au jus ;)

par Ryle » 08 mai 2006, 11:49

Hello :)

Il faut placer l'attribut "selected" dans l'option que tu souhaites sélectionner par défaut.

Code : Tout sélectionner

<option selected> bla bla </option>
Il te suffit donc de comparer la valeur saisie par l'utilisateur avec celle de l'option pour savoir dans laquelle tu dois ajouter cet attribut :)
Quelque chose du genre...
<option <?php if($valOption==$valSaisieParUser) echo "selected"; ?> > ... </option>

conserver un choix dans une liste déroulante dans formulaire

par BeRoots » 08 mai 2006, 11:38

salut à tous :)

j'ai un formulaire qui contient plusieurs champs ainsi qu'n liste déroulante et qui affiche des message d'erreur quand ceux ci sont erronés.
je souhaite faire en sorte que lors ce que l'on réaffiche le formulaire en cas d'erreur au remplissage, le choix de la liste déroulante soit maintenus :-k

j'ai fait ceci mais c'est pas genial car un fois le formulaire réafficher on retrouve un doublon du choix séléctionner dans la liste déroulante :?
<select name="groupe" id="label_groupe" size="1">
<optipon><?php echo $_post['groupe'] ?></option>
<optipon>choix 1</option>
<optipon>choix2</option>
</select>
est ce que quelqu'un aurai une autre idée :roll:

merci d'avance ;)