Replacer les valeurs déjà saisie dans un formulaire!

Résolu
seb_acsg Messages postés 3 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 8 février 2006 - 7 févr. 2006 à 16:13
seb_acsg Messages postés 3 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 8 février 2006 - 8 févr. 2006 à 09:44
Bonjour!

Voilà j'ai un petit problème, je suis un débutant en php et je dois créer un formulaire qui entre des données dans une base mysql pour une enquête de satisfaction.

J'ai donc créé mon formulaire, j'ai créer un petit code qui fait le contrôle de la saisie mais là ou ça coince c'est que si les données saisies ne sont pas adéquates mon formulaire me renvoie l'erreur et réinitialise tout les champs que j'ai déjà saisi...

J'ai utilisé ce code pour palier au problème dans le formulaire.

<select name="nbr_h" size="1">
<option selected value="<? Print $nbr_h ?>"><? Print $nbr_h ?></option>
<option value="1">1 heure</option>
<option value="2">2 heures</option>
<option value="3">4 heures</option>
<option value="4">8 heures</option>
</select>

En 2 mots, je revois mon formulaire sur lui même, la variable est donc récupérée avec le $_POST() et elle est ré-assignées au champs par défaut en cas d'erreur. Mais comme on le vois la valeur du champs et un nombre... du coup l'utilisateur verra pleins de nombres là ou il avait saisi du texte.

Que puis-je faire pour que ça soit le texte et non la valeur du champs qui se replace dans les menus déroulants?

Merci BCP

Le Coyote fou

10 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 févr. 2006 à 16:41
Hello,

pas tout compris, mais je me lance :

<select name="nbr_h" size="1">
<option value="1" <?php echo $selected=($nbr_h == 1)?'selected':''; ?>>1 heure</option>
<option value="2" <?php echo $selected=($nbr_h == 2)?'selected':''; ?>>2 heures</option>
<option value="3" <?php echo $selected=($nbr_h == 3)?'selected':''; ?>>4 heures</option>
<option value="4" <?php echo $selected=($nbr_h == 4)?'selected':''; ?>>8 heures</option>
</select>

ceci dit, ce serait plus rapide avec un tableau.
3
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
7 févr. 2006 à 16:34
<option value="1 heure">1 heure</option>
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
7 févr. 2006 à 16:35
mais tu auras un doublon
0
supergyver Messages postés 29 Date d'inscription jeudi 19 février 2004 Statut Membre Dernière intervention 14 février 2007
7 févr. 2006 à 16:48
ou une boucle:



<form method="post" etc...>

<select name="nbr_h" size="1">

<? for( $i = 1; $i++; $i < 5){

$ii = 2 * $i;

echo "<option value="".$i."";

if( $i = $_POST["nbr_h"]) echo " selected";

echo ">".$ii." heures</option>";

}

?>

</select>

</form>
0

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

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 févr. 2006 à 17:02
Soyons fou ;-)
<style>
option:after {
content: ' heure(s)';
}
</style>
<?php
$heures = array (1, 2, 3, 4);
foreach ($heures as $val) { $selected ($val $nbr_h)?'selected="selected":'';
echo '<option value="',$val*2,'" ',$selected,'>', $val, </option>';
}
?>
0
seb_acsg Messages postés 3 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 8 février 2006
7 févr. 2006 à 17:07
Vous êtes trop fort, mais soyez pas trop fou quand même, moi je suis juste trop débutant!

Bah je teste demain matin au boulot et je vous redis! mais merci mille fois pour les réponses!

Le Coyote fou
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
7 févr. 2006 à 19:21
<style>

option:after {

content: ' heure(s)';

}

</style>

<?php

$heures = array (1, 2, 3, 4);

foreach ($heures as $val) {

$selected ($val $nbr_h)?'selected="selected" ' :'';

echo '<option value ="',$val*2,'" ',$selected,'>', $val, '</option>';

}

?>



excellent malalam (je me suis permis de rajouter deux quotes au
cas où - risqué parce que ton niveau me fait douter, mais bon...) merci
pour tous ces tuyaux. j'avoue que la virgule pour concaténer, c'est
moins évident à lire , mais on doit s'y faire...
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
7 févr. 2006 à 23:17
Sauf que pour le moment... :after n'est pris en compte que par Gecko :)

Faut attendre IE7 pour les autres (moi perso, jm'en tamponne :p)
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
8 févr. 2006 à 07:46
Boah là cétait pour dire qu'on pouvait s'amuser, avec les répétitions..., mais en effet ça marche po avec IE 6 :-( Et moi j'm'en tamponne pas parce que c'est drôlement pratique, :after, ou :before, quand on a de looongues listes, ou pour les labels, etc. Nan nan, chouette propriété je trouve :-)
0
seb_acsg Messages postés 3 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 8 février 2006
8 févr. 2006 à 09:44
Merci beaucoup,

J'ai pas passé par desboucles parce que j'ai pas mal de champs et ils sont loin d'avoir tous les mêmes propriétés! mais merci encore pour l'aide! Tout roule maintenant!

Le Coyote fou
0
Rejoignez-nous