IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

pré sélectionner un élément d'une liste


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 90
    Points : 60
    Points
    60
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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>

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 348
    Points
    348
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value='ABD' <?php if ($donnees['localisation'] == 'ABD') echo "checked =\"checked\"" ; ?>>ABC </option>

  3. #3
    Expert éminent sénior

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Points : 19 373
    Points
    19 373
    Par défaut
    Bonjour,

    J'aurais mis les if AVANT les <option> personnellement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    }

  4. #4
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    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

  5. #5
    Expert éminent sénior

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Points : 19 373
    Points
    19 373
    Par défaut
    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

  6. #6
    Invité
    Invité(e)
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 	} ?>

  7. #7
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  8. #8
    Invité
    Invité(e)
    Par défaut
    Clarté et concision : bien joué Shikiryu

    "Tous les chemins mènent à Rome .... mais certains sont plus courts !"

  9. #9
    Expert éminent
    Avatar de kdmbella
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2010
    Messages
    799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 799
    Points : 7 038
    Points
    7 038
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  10. #10
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    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

  11. #11
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 90
    Points : 60
    Points
    60
    Par défaut
    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 !!!!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Comment sélectionner les éléments d'une liste ?
    Par kheironn dans le forum Entity Framework
    Réponses: 2
    Dernier message: 17/05/2013, 12h36
  2. Sélectionner plusieurs éléments dans une liste
    Par morgan47 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 16/11/2011, 12h16
  3. Réponses: 0
    Dernier message: 13/10/2011, 12h15
  4. Réponses: 27
    Dernier message: 29/08/2011, 10h13
  5. Sélectionner un élément dans une liste multiple
    Par sourivore dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/03/2006, 12h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo