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 29/07/2011, 09h55   #1
Nouveau Membre du Club
 
karine bazin
Inscription : juillet 2010
Messages : 90
Détails du profil
Informations personnelles :
Nom : karine bazin

Informations forums :
Inscription : juillet 2010
Messages : 90
Points : 25
Points : 25
Par défaut pré sélectionner un élément d'une liste

Bonjour,

Je débute en php xhtml et j'ai une question toute simple enfin j'espère!
Je voudrais savoir si cela est possible de pré sélectionner un élement d'une liste selon une valeur définit dans $donnees

J'ai fait cela pour le moment mais comme pas grand chose ne marche je ne suis pas sûre que cela soit possible! pouvez-vous me dire si c'est correcte où sinon comment il faut faire!

Merci

Code :
1
2
3
4
5
6
7
8
 
  <label for="sex"> Patient Sex: </label>
       <input type="radio" name="sex" value="Woman" id="woman" checked =" <?php if ($donnees['sexpatient'] == 'woman') echo "checked" ; ?>"  /> Woman 
	   <input type="radio" name="sex" value="Man" id="man" checked ="<?php if ($donnees['sexpatient'] == 'man') echo "checked" ; ?>" /> Man
<label for="localisation"> Exam Localisation: </label>
       <select name="localisation" id="localisation" />
	  <option value='ABD'checked=" <?php if ($donnees['localisation'] == 'ABD') echo "checked" ; ?>" >ABC </option>
 <option value='ANKLE' checked=" <?php if ($donnees['localisation'] == 'ANKLE') echo "checked" ; ?>" >ANKLE</option>
kbazin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 10h22   #2
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
Code :
1
2
3
4
5
6
7
8
9
<label for="sex"> Patient Sex: </label>
		<input type="radio" name="sex" value="Woman" id="woman" <?php if ($donnees['sexpatient'] == 'woman') echo "checked =\"checked\"" ; ?>  /> Woman 
		<input type="radio" name="sex" value="Man" id="man" <?php if ($donnees['sexpatient'] == 'man') echo "checked =\"checked\"" ; ?> /> Man
 
<label for="localisation"> Exam Localisation: </label>
	<select name="localisation" id="localisation" />
		<option value='ABD' <?php if ($donnees['localisation'] == 'ABD') echo "checked =\"checked\"" ; ?>>ABC </option>
		<option value='ANKLE' <?php if ($donnees['localisation'] == 'ANKLE') echo "checked =\"checked\"" ; ?>>ANKLE</option>
	</select>
Pourquoi 'ABC' ?

Code :
<option value='ABD' <?php if ($donnees['localisation'] == 'ABD') echo "checked =\"checked\"" ; ?>>ABC </option>
__________________
Pensez à la balise [CODE].
Aucune réponse aux questions par MP.
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 10h24   #3
Modérateur
 
Avatar de FirePrawn
 
Homme Sébastien
Ingénieur réalisateur
Inscription : mars 2011
Messages : 775
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 24
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Ingénieur réalisateur
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 775
Points : 2 335
Points : 2 335
Bonjour,

J'aurais mis les if AVANT les <option> personnellement.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
<?php 
if ($donnees['localisation'] == 'ABD') {
?>
<option value='ABD' selected="selected">ABC </option>
<?php
}
else {
?>
<option value='ABD'>ABC</option>
<?php
}
FirePrawn est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/07/2011, 11h16   #4
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
C'est tout à fait possible si tu regardes le code de gwharl.

Histoire d'étayer un peu, voici l'explication.
En HTML, les attributs checked="checked", 'checked=""' et "checked" feront la même chose : sélectionner. Donc, ton code ferait essayer de tout sélectionner et c'est pourquoi la solution de gwharl est bonne

Par contre, sans animosité aucune, je te déconseille ce que t'as dit FirePrawn.
Plusieurs raisons :
  • Pour une seule option, la lisibilité est superbe. Mais pour 4-5, ça devient galère.
  • Si tu as fait une erreur (comme il semble que tu aies fait pour les valeurs), tu ne dois pas corriger une mais 2 fois
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 11h18   #5
Modérateur
 
Avatar de FirePrawn
 
Homme Sébastien
Ingénieur réalisateur
Inscription : mars 2011
Messages : 775
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 24
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Ingénieur réalisateur
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 775
Points : 2 335
Points : 2 335
Citation:
Envoyé par Shikiryu Voir le message
C'est tout à fait possible si tu regardes le code de gwharl.

Histoire d'étayer un peu, voici l'explication.
En HTML, les attributs checked="checked", 'checked=""' et "checked" feront la même chose : sélectionner. Donc, ton code ferait essayer de tout sélectionner et c'est pourquoi la solution de gwharl est bonne

Par contre, sans animosité aucune, je te déconseille ce que t'as dit FirePrawn.
Plusieurs raisons :
  • Pour une seule option, la lisibilité est superbe. Mais pour 4-5, ça devient galère.
  • Si tu as fait une erreur (comme il semble que tu aies fait pour les valeurs), tu ne dois pas corriger une mais 2 fois
Pas faux, j'ai juste repensé à ce que j'avais fait ya quelques mois pour une option, mea culpa
FirePrawn est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 11h40   #6
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Citation:
Envoyé par Shikiryu Voir le message
  • Pour une seule option, la lisibilité est superbe. Mais pour 4-5, ça devient galère.
  • Si tu as fait une erreur (comme il semble que tu aies fait pour les valeurs), tu ne dois pas corriger une mais 2 fois
Pour résoudre ces inconvénients, voici ce que je fais :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!-- SELECT -->
	<select id="iddonnee" name="donnee">
<?php	// array Noms / valeurs
	$sel_Name 	= array('nom1','nom2','nom3');
	$sel_Value 	= array('valeur1','valeur2','valeur3');
	$sel_Nombre = count($sel_Name);
	for ($i=0; $i < $sel_Nombre; $i++)
	{
		if ($ma_donnee == $sel_Value[$i]) 
		{ 		$sel_Selected = ' selected="selected"'; }
		else { 	$sel_Selected = ''; }
?>
		<option value="<?php echo $sel_Value[$i]; ?>"<?php echo $sel_Selected; ?>><?php echo $sel_Name[$i]; ?></option>
<?php 	} ?>
	</select>
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<!--  RADIO (ou CHECKBOX) -->
<?php	// array Noms / valeurs
	$rad_Name 	= array('nom1','nom2','nom3');
	$rad_Value 	= array('valeur1','valeur2','valeur3');
	$rad_Nombre = count($rad_Name);
	for ($i=0; $i < $rad_Nombre; $i++)
	{
		if ($ma_donnee == $rad_Value[$i]) 
		{ 		$rad_Checked = ' checked ="checked"'; }
		else { 	$rad_Checked = ''; }
?>
		<input type="radio" name="donnee" value="<?php echo $rad_Value[$i]; ?>"<?php echo $rad_Checked; ?> /> <?php echo $rad_Name[$i]; ?>
<?php 	} ?>
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 11h55   #7
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
L'utilisation des arrays est plutôt bonne

Je ferais ça pour :
  • économiser 1 tableau (on réunit les 2 en 1 associatif) et 1 var temporaire ($i)
  • gagner en libilité en cas de changement de la valeur dont on sait que le nom (dans le cas d'un select long, là, pour 3, ça va... mais bon les erreurs d'inattention )

Code :
1
2
3
4
5
6
7
8
9
10
<select id="iddonnee" name="donnee">
<?php	// array Noms / valeurs
	$ma_donnee = 'valeur2'; // pour tester le select sur la valeur 2
	$sel = array('nom1'=>'valeur1', 'nom2'=>'valeur2', 'nom3'=>'valeur3');
	foreach($sel as $nom=>$valeur){
		$select = $ma_donnee == $valeur ? ' selected="selected"' : '';
		?>
		<option value="<?php echo $valeur; ?>"<?php echo $select; ?>><?php echo $nom; ?></option>
	<?php 	} ?>
</select>
ça fonctionne plutôt bien : http://codepad.viper-7.com/aInaRM
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/07/2011, 12h00   #8
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Clarté et concision : bien joué Shikiryu

"Tous les chemins mènent à Rome .... mais certains sont plus courts !"
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 12h02   #9
Membre Expert
 
Avatar de kdmbella
 
Homme Demazy Mbella
Développeur Web
Inscription : août 2010
Messages : 620
Détails du profil
Informations personnelles :
Nom : Homme Demazy Mbella
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : août 2010
Messages : 620
Points : 1 470
Points : 1 470
vous pouvez également le faire coté client en utilisant javascript c'est plus simple et plus léger et plus lisible :
tu teste la valeur de ton option et avec une simple bloucle du genre

Code javascript :
1
2
3
4
5
6
7
8
9
10
11
var option; // ton option
var select; // ton select
for(i=0;i< document.getElementById('select').length ; i++)
{
  if(document.getElementById('select').options[i].value = option)
  { 
 
   document.getElementById('select').options[i].selected = true;
   breack;
  }
)


bon enfin j'espère que ça répond a ta question
__________________
Trois personnes peuvent garder un secret si deux d'entre elles sont mortes. :Benjamin Franklin
L'humanité se divise en trois catégories : ceux qui ne peuvent pas bouger, ceux qui peuvent bouger, et ceux qui bougent : Benjamin Franklin
Le hasard, c'est le déguisement que prend Dieu pour voyager incognito: Albert Einstein
bon je m'arrête là au risque de me faire buter
kdmbella est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 12h11   #10
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
Plus simple ? Plus léger !!? Qu'est ce qu'on ne lit pas...

Le client n'a pas javascript activé : pof dans l'os ; pour un truc qui doit être généré côté serveur.

Comment tu passes la valeur à ta variable "option", t'es obligé de lui fournir depuis le serveur à la génération de la page...

ps: ça s'écrit "break"

pss: Pour la petite histoire, PHP s'appelait PHP/FI lors de sa création en 1995. Le FI signifie "Forms Interpreter" (soit Interpreteur de Formulaires). Si ça s'est pas un langage serveur spécialisé dans les formulaires, j'vois pas lequel le serait
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 12h37   #11
Nouveau Membre du Club
 
karine bazin
Inscription : juillet 2010
Messages : 90
Détails du profil
Informations personnelles :
Nom : karine bazin

Informations forums :
Inscription : juillet 2010
Messages : 90
Points : 25
Points : 25
Whaou vous êtes en forme!!!

Premièrement merci beaucoup pour toutes ces informations!!

Le ABC est bien faux, c'est un ABD qu'il faut mettre

Ensuite pour toutes vos réponses, avec mon niveau débutant, je vais avoir besoin d'un peu de temps pour tout bien comprendre mais je suis sure que je trouverais la solution!

Merci !!!!!!
kbazin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h09.


 
 
 
 
Partenaires

Hébergement Web