Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/07/2011, 10h42   #1
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 189
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 189
Points : 29
Points : 29
Par défaut Un choix persistant dans un formulaire

Bonjour

J’ai un formulaire Web où la saisie consiste à faire un choix sur chacun des quatre menus déroulants.

L’un des menus déroulants permet de choisir un jour de la semaine : Lundi, Mardi, …:
Code :
1
2
3
4
5
6
 
<LABEL>Jours:
<select name="jour">
<option value="lundi"  >Lundi</option>  
<option value="mardi"  >Mardi</option>
en transmettant ensuite la valeur saisie avec :
Code :
1
2
 
$jour = $_POST['jour'];
Quand mon utilisateur fait des saisies, il fait ensemble toutes les saisies pour un jour de la semaine : celles de Lundi d’abord, celles de Mardi ensuite, …

Ca lui serait très pratique de sélectionner Mardi, par exemple, et de faire toutes les saisies de Mardi sans avoir à chaque saisie à sélectionner de nouveau Mardi dans le menu déroulant des jours de la semaine.

Est-il possible de mettre en œuvre un processus où le jour de la semaine, dans mon exemple, persiste jusqu’à ce que l’utilisateur sélectionne un autre jour dans le menu déroulant ?

J'ai fait plusieurs essais sans succès jusqu'ici.

Par avance merci de votre aide.

Francois
francoisch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 11h22   #2
Membre habitué
 
Inscription : décembre 2007
Messages : 181
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 181
Points : 140
Points : 140
Bonjour,

si j'ai bien compris ton objectif, tu veux qu'un jour sois préselectionné.

tu peux utiliser ceci:
Code :
<option selected value='$jour'>
Après livre à toi de gérer l'emplacement du "selected" dynamiquement.
exemple (je ne connais pas tes règles de gestions mais : )
Code :
<option <?if ($value==$_POST['jour']) echo "selected"; ?> value='<?php echo $value; ?>' >
roduce est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 11h24   #3
Nouveau Membre du Club
 
Avatar de Thibault92
 
Homme Thibault
Étudiant
Inscription : juin 2011
Messages : 43
Détails du profil
Informations personnelles :
Nom : Homme Thibault
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 43
Points : 33
Points : 33
Regarde du coté des attributs du select

Code :
1
2
3
4
5
6
7
<select>
  <option label="test" value="1">Afrique</option>
  <option label="test" value="2">Amérique</option>
  <option label="test" value="3">Asie</option>
  <option label="test" value="4">Australie</option>
  <option label="test" value="5" selected="selected">Europe</option>
</select>
dans cet exemple la liste sera placée sur la 5eme option "Europe"
Thibault92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 11h31   #4
Membre habitué
 
Inscription : décembre 2007
Messages : 181
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 181
Points : 140
Points : 140
Effectivement j'avais oublié un bout du selected dans ma réponse.
roduce est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 11h57   #5
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Citation:
Envoyé par roduce Voir le message
Code :
<option <?if ($value==$_POST['jour']) echo "selected"; ?> value='<?php echo $value; ?>' >
Bonjour,

donc ca donne ca:
Code :
<option <?php if ($value==$_POST['jour']) echo "selected=\"selected\""; ?> value='<?php echo $value; ?>' >
Je me suis permis de rajouter <?php sur ton premier if
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 12h25   #6
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
Hello

J'ai une classe de génération et de remplissage automatique de formulaires sous le coude si ça te branche:
http://www.developpez.net/forums/d10...r-formulaires/

La dernière version est disponible dans les sources de ce projet:
http://code.google.com/p/php-axiom/
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/07/2011, 14h40   #7
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 189
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 189
Points : 29
Points : 29
Merci de vos réponses.

Oui, je souhaite que la persistance soit dynamique.

J'avais déjà fait des essais en générant dynamiquement le Selected avec:
Code :
1
2
3
4
 
<option value="lundi"    <?= $_POST['jour'] == 'lundi'    ? 'selected="selected"' : '' ; ?> >Lundi</option>
<option value="mardi"    <?= $_POST['jour'] == 'mardi'    ? 'selected="selected"' : '' ; ?> >Mardi</option>  
...
mais la persistance ne fonctionne pas / le selected n'est pas généré.

A bientôt, je vais travailler avec vos réponses.

Francois
francoisch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 19h13   #8
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 189
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 189
Points : 29
Points : 29
Je travaille sur vos solutions et sur ce que j'avais mais toujours sans y arriver.

En reprenant ma ligne courante <option value="lundi" ..., j'essaye de voir ce qui ne fonctionne pas en la testant par morceaux.

L'expression IF en Php fonctionne, je l'ai testée séparément, elle génère bien le selected dans un cas et rien dans l'autre.

Par contre, j'ai essayé d'afficher dans ma page la valeur de $_POST['jour'] avec:
Code :
1
2
 
<?php echo "jour: ".$_POST['jour']."<br>"; ?>
et rien ne sort comme si $_POST['jour'] n'était pas valorisé par la saisie d'un jour dans le menu déroulant.

Pourtant, j'ai bien:
  • <form method="post" ... en tête du formulaire
  • <LABEL>Jours: <select name="jour"> pour ce champ jour
Merci par avance de votre aide.

Francois
francoisch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2011, 08h30   #9
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Bonjour,

ce code te permet de faire ce que tu veux, testes le sur une page appart et regarde comme il marche. Après tu l'adaptes à ton code et si ca marche pas envoie tout ton code...

Code :
1
2
3
4
5
6
7
8
9
10
<form action="memePageQueCeFormulaire.php" method="post">
<select name="jour">
	<option value="lundi" <?php if(isset($_POST['jour']) && $_POST['jour']=="lundi") echo "selected=\"selected\"";?>>lundi</option>
	<option value="mardi" <?php if(isset($_POST['jour']) && $_POST['jour']=="mardi") echo "selected=\"selected\"";?>>mardi</option>
	<option value="mercredi" <?php if(isset($_POST['jour']) && $_POST['jour']=="mercredi") echo "selected=\"selected\"";?>>mercredi</option>
	<option value="jeudi" <?php if(isset($_POST['jour']) && $_POST['jour']=="jeudi") echo "selected=\"selected\"";?>>jeudi</option>
</select>
<input type="text" value="<?php if(isset($_POST['jour'])) echo $_POST['jour'];  ?>">
<input type="submit" value="valider">
</form>
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2011, 12h04   #10
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 189
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 189
Points : 29
Points : 29
bonjour et merci encore de votre aide.

J'ai fini par trouver où était mon erreur, ça fonctionne impeccablement maintenant.

En résumé, mon IF en Php était bon; par contre, je fonctionnais mal avec le $_POST.

J'ai mis tout ça d'équerre, ma page se souvient bien maintenant de ce qui a été saisi le coup précédent et s'en sert pour le mettre en Selected.

Merci encore, vos réponses, nos discussions m'ont été très utiles face à une logique qui m'échappait.

Francois
francoisch est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h27.


 
 
 
 
Partenaires

Hébergement Web