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

PHP & Base de données Discussion :

SELECTED dans un OPTION [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 183
    Par défaut SELECTED dans un OPTION
    Bonjours à tous,

    Je sais cque c'est un sujet bateau mais je viens de passer qq heures dans différents forums (pour pas déranger pour rien) et je n'ai pas trouvé mon bonheur.

    Un truc simple : je lis, dans mysql, la liste des pays. Si un pays correspond au pays antérieurement choisi par le visiteur, je le mets en SELECTED. Simple. Je l'ai fait cent fois et tout fut (il y a longtemps) ok.
    Et là, ça ne fonctionne pas.

    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
    22
    23
    24
     
     
    echo "
    <SELECT name='pays'> 
           <OPTION>Choisissez ici :</OPTION>";
     
          $reponse = "SELECT * FROM pays";
          $req = MYSQL_QUERY($reponse, GetMyConnection());
          $res = mysql_num_rows($req);
     
          $i=0;		
     
          while ($i != $res) 
          {
          	$le_pays = mysql_result($req, $i, pays);	
     
          	if  ($le_pays == $pays_choisi)              
        	{
                       $defaut_pays="SELECTED";  				}
     
          	echo "<OPTION $defaut_pays>$le_pays</OPTION>";    			
          	$i++;
          }	
          echo "</SELECT>";
    J'ai tout essayé me semble-t-il. Quotes, pas quotes, doubles ou simples, bref pas de sélection. Amusant (je l'avais jamais vu) si au lieu des quotes à "SELECTED" je mets des apostrophes la liste commence par 'Choisissez ici :' sinon la liste commence par Zimbabwe ...

    Si vous voyez où ça coince, merci du coup de main.

    Cordialement.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Par défaut
    Bonjour,

    Et avec cette syntaxe ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<OPTION $defaut_pays>'.$le_pays.'</OPTION>';

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 183
    Par défaut
    Bonjour,

    Merci de la réponse. Je viens d'essayer mais cela ne change rien.

    Rectificatif de mon message précédent concernant le côté amusant. Il s'agissait en fait de la ligne : if ($le_pays == '$pays_choisi') . $pays_choisi avec ou sans aposthophe change le sens de la liste déroulante...

    Pour en revenir à mon soucis, ça ne 'selecte' toujours pas...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Par défaut
    Hors mis le selected, tu charge bien dans ton select tous tes pays ?
    Et comment récupère-tu le '$pays_choisi' ?
    L'as tu afficher pour verifier ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 183
    Par défaut
    Oui, le select a la liste de tous les pays.

    J'ai essayé pour voir si je récupérais bien mon $pays_choisi (qui provient d'un $_POST) et tout va bien.

    J'ai rajouté 2 lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    $le_pays = trim($le_pays);
    $pays_choisi = trim($pays_choisi);
    après la requète en boucle : $le_pays = mysql_result($req, $i, pays); au cas où, le champ de mysql étant prévu large, pour les pays à long énoncé, il me livre le pays avec des espaces. Mais là encore, cela ne change rien...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Par défaut
    Je crois savoir ....

    Tu fais une égalité sur 2 champs textes, c'est pas == qu'il faut utiliser mais la fonction strcmp qui compare 2 chaines et qui retourne 0 si elles sont identiques.

    Ca donne donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	if  (strcmp($le_pays, $pays_choisi)==0)
        	{
                       $defaut_pays="SELECTED"; 
    }
    else {
    $defaut_pays=""; 
    }
    Tu oublie même de fermer le IF dans ton code

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 264
    Par défaut
    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
     
     // OuvrirConnexion() - Début de page
     if (isset($_POST["pays"])) $country_select = $_POST["pays"];
     $i=0;
     $select = '<SELECT name="pays"><OPTION>Choisissez ici :</OPTION>';
     $query = mysql_query("SELECT * FROM pays");
     while ($row=mysql_fetch_array($query))
     {
       $country = $row["Le_champ_pays"];
       $selected =''; if ($i == $country_select) $selected = "SELECTED";
       $select .= '<OPTION '.$selected.' id="'.$i.'">'.$country.'</OPTION>';
       $i++;
     }
     mysql_free_result($query);
     $select .= '</SELECT>';
     echo $select;
     // FermerConnexion() - Fin de page

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/01/2010, 09h41
  2. Charger un url dans le <option> d'un <input type select>
    Par whitespirit dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/05/2008, 15h01
  3. Alignement de variables dans les <option> d'un <select>
    Par Crowell dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 18/07/2007, 17h42
  4. Créer un titre dans un option d'un select
    Par katchi dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 14/01/2007, 21h58
  5. Réponses: 8
    Dernier message: 05/05/2004, 16h28

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