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 :

Afficher un "selected" dans un menu déroulant de formulaire dynamiquement


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut Afficher un "selected" dans un menu déroulant de formulaire dynamiquement
    Bonjour,

    Ma question est très simple !

    J'ai une liste de pays de 240 items dans un menu déroulant. En php, je souhaiterais sélectionner (mettre l'attribut selected) devant l'item en fonction du résultat d'une requête sql.

    Exemple : J'habite en France et quand je veux modifier mon profil, je veux que le menu déroulant soit pointé directement sur "France".

    On peut faire 240 conditions "if" (et encore je sais même pas si c'est gérable...) mais n'y a t-il pas une solution propre ?


  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Salut,

    Si tu pouvais poster un peu de ton code cela nous aiderais, à t'aider. car non ce n'est pas gérable.

    bye

  3. #3
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Tien si tu veux le code !

    La liste des pays dans le fichier pays.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    <?
    <select name="pays" size="1">
        <option value="France" selected="selected">France</option>
        <option value="Allemagne">Allemagne</option>
        <option value="Grande bretagne">Grande bretagne</option>
        <option value="Espagne">Espagne</option>
        <option value="-1">-----------------------------<option>
        <option value="Afghanistan"><? echo(PAYS_1); ?></option>
        <option value="Afrique du Sud"><? echo(PAYS_2); ?></option>
        <option value="Albanie"><? echo(PAYS_3); ?></option>
        <option value="Alg&eacute;rie"><? echo(PAYS_4); ?></option>
        <option value="Allemagne"><? echo(PAYS_5); ?></option>
        <option value="Andorre"><? echo(PAYS_6); ?></option>
        <option value="Angola"><? echo(PAYS_7); ?></option>
        <option value="Antigua-et-Barbuda"><? echo(PAYS_8); ?></option>
        <option value="Arabie saoudite"><? echo(PAYS_9); ?></option>
        <option value="Argentine"><? echo(PAYS_10); ?></option>
        <option value="Arm&eacute;nie"><? echo(PAYS_11); ?></option>
     
        <option value="Belau"><? echo(PAYS_19); ?></option>
        <option value="Belgique"><? echo(PAYS_20); ?></option>
        <option value="Belize"><? echo(PAYS_21); ?></option>
        <option value="B&eacute;nin"><? echo(PAYS_22); ?></option>
        <option value="Bhoutan"><? echo(PAYS_23); ?></option>
     
    .....
     
    ......
     
        <option value="Botswana"><? echo(PAYS_28); ?></option>
        <option value="Br&eacute;sil"><? echo(PAYS_29); ?></option>
        <option value="Brunei"><? echo(PAYS_30); ?></option>
        <option value="Bulgarie"><? echo(PAYS_31); ?></option>
        <option value="Burkina"><? echo(PAYS_32); ?></option>
        <option value="Burundi"><? echo(PAYS_33); ?></option>
        <option value="Cambodge"><? echo(PAYS_34); ?></option>
     
        <option value="Zambie"><? echo(PAYS_193); ?></option>
        <option value="Zimbabwe"><? echo(PAYS_194); ?></option>
    </select>
    ?>
    Et puis dans mon code un require pour l'importer :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php 
    		 	 require("../includes/pays.php");
    		 ?>

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 125
    Points : 149
    Points
    149
    Par défaut
    Alors alors,

    Si tu veux faire ça génériquement pour alléger ton code (enfin c'est ce que j'ai cru comprendre), il faut déjà que tu allège ton code au niveau des options.

    A ce propos d'ailleurs j'ai 2 ou 3 petites suggestions.
    Pourquoi utiliser des constantes alors qu'il serait plus simple de tout stocker dans une array ?

    Alors voilà ce que je te conseille : au lieu de (PAYS_1),(PAYS_2)....(PAYS_194), met le tout dans un tableau par exemple $tableau_pays.
    Mettre le tout dans un array ça va grandement simplifier les choses, de telle sorte à ce que $tableau_pays[0] = (PAYS_1), $tableau_pays[1] = (PAYS_2) etc etc...

    Imagnions par exemple que $nom_pays_a_selectionne = "nom du pays à selectionner"

    Voici ce que sera ton code :

    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
    16
    17
    18
    19
    20
    21
     
    <select name="pays" size="1">
        <option value="France">France</option>
        <option value="Allemagne">Allemagne</option>
        <option value="Grande bretagne">Grande bretagne</option>
        <option value="Espagne">Espagne</option>
        <option value="-1">-----------------------------<option>
     
    <?
    for ($i=0;$i==count($tableau_pays);$i++) {
          $selectionne="";
          if ($tableau_pays[$i] == $nom_pays_a_selectionne) {
                $selectionne="selected = \"selected\"";
          };
     
          echo '<option value=" '.$tableau_pays[$i].' " '.$selectionne.'>'.$tableau_pays[$i].'</option>';
    };
     
    ?>
     
    </select>

    Voila j'espère avoir répondu à ce que tu demandais ^^'

Discussions similaires

  1. [MySQL] Une seule entrée affichée dans le menu déroulant
    Par Nutaak dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/10/2008, 19h56
  2. [MySQL] afficher le choix éffectué dans un menu déroulant
    Par qeumarh dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 19/05/2008, 13h08
  3. Réponses: 8
    Dernier message: 23/05/2007, 16h54

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