liste déroulante

afi
Eléphant du PHP | 51 Messages

06 déc. 2011, 10:05

bonjour,
Merci de m'aider svp!
Lors de l'envoie d'un formulaire en cliquant sur submit si un champ est vide un script est exécuté et me signale l'erreur.Bien évidement avec le bout de code :
<?php echo $_POST['titre'];?> dans value les données restent présents dans le formulaire pout les imput type texte.

Ce qui n'est pas le cas(pour moi) pour les liste déroulantes à plusieurs options, qui changent de ligne d'option si l'envoi ne se fait pas.
avez vous une solution?

merci à tous

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

06 déc. 2011, 10:45

bonjour,

de rien.

oui.

Qu'as tu fait jusqu'ici ?

pour info un élément de liste est sélectionné par un selected="selected" dans la déclaration. il te va donc falloir parcourir toutes les possibilités et comparer.

@+
Il en faut peu pour être heureux ......

afi
Eléphant du PHP | 51 Messages

06 déc. 2011, 10:58

NON! selected="selected" NE FONCTIONNE PAS l'ai essayé déja.
merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

06 déc. 2011, 11:44

dans ce cas ce n'est pas ce pas une liste déroulante !
=> http://fr.selfhtml.org/html/formulaires ... htm#listes

à la limite si tu montre du code on pourrait t'aider, sans ça restera ainsi.

mais une pré sélection d'un élément d'une liste déroulante passe par l'attribut selected !!!!!

@+
Il en faut peu pour être heureux ......

afi
Eléphant du PHP | 51 Messages

06 déc. 2011, 12:09

trés bien! voici le code:
<select name="titre">
<option value="" >----</option>
<option value="Mr" selected>Mr</option>
<option value="Mlle">Mlle</option>
<option value="Mme">Mme</option>
</select>
effectivement en utilisant selected l'option est coché par défaut, mais si je choisi Mme par exemple si l'l'envoi du formulaire ne se fait pas c'est l'option Mr qui revient
C'est normal!! à cause de selected.
Ce que je veux c'est que ma sélection initiale reste, c'est a dire option Mme, comme pour une imput type texte avec le code suivant:
value="<?php echo $_POST['nom'];?>" .
voilà!
merci à toi

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

06 déc. 2011, 13:02

ben faut faire bien c'tout :mrgreen:
il te va donc falloir parcourir toutes les possibilités et comparer.
c'pas clair ?

au pire 3 if
if ( $_POST['titre'] == 'Mr') echo 'selected="selected";
a adapter pour les 3.
tu peux même prévoir le cas par défaut en "settant" $_POST['titre'] s'il n'existe pas !

@+
Il en faut peu pour être heureux ......

afi
Eléphant du PHP | 51 Messages

06 déc. 2011, 13:45

effectivement, j'ai adapté le code aux 3 options de select (Mr,Mlle,Mme) et cela fonctionne, au submit si le formulaire n'est pas validé l'option initiale sélectionnée de la liste reste.
<select name="titre" size="5"" >
<option value="Mr" <?php if ( $_POST['titre'] == 'Mlle') echo 'selected=selected';?>>Mr</option>
<option value="Mlle" <?php if ( $_POST['titre'] == 'Mlle') echo 'selected=selected';?>>Mlle</option>
<option value="Mme" <?php if ( $_POST['titre'] == 'Mme') echo 'selected=selected';?>>Mme</option>
</select>
Je ne l'avais pas vu comme cela au début!
Merci à toi, j'ai encore progressé.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

06 déc. 2011, 14:15

value="Mr" <?php if ( $_POST['titre'] == 'Mlle') ec <= y a comme un soucis la ;)

pense à l'initialisation si pas de $_POST['titre'].

@+
Il en faut peu pour être heureux ......

afi
Eléphant du PHP | 51 Messages

06 déc. 2011, 14:41

oui, faute c'est Mr autant pour moi.
merci encore