Replacer les valeurs déjà saisie dans un formulaire! [Résolu]

Signaler
Messages postés
3
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
8 février 2006
-
seb_acsg
Messages postés
3
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
8 février 2006
-
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

Messages postés
10843
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
18
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.
Messages postés
1218
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
<option value="1 heure">1 heure</option>
Messages postés
1218
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
mais tu auras un doublon
Messages postés
29
Date d'inscription
jeudi 19 février 2004
Statut
Membre
Dernière intervention
14 février 2007

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>
Messages postés
10843
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
18
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>';
}
?>
Messages postés
3
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
8 février 2006

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
Messages postés
1218
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
<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...
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
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)
Messages postés
10843
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
18
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 :-)
Messages postés
3
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
8 février 2006

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