Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2456 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [HTML&PHP] Probleme de SELECTED dans une liste déroulante

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[HTML&PHP] Probleme de SELECTED dans une liste déroulante

n°294280
rainckill
Posté le 26-01-2003 à 14:34:09  profilanswer
 

Voila, enfait, j'ai un formulaire d'ajout dans une base de donné, constitué deliste déroulante... Pour l'ajout, j'ai fait :
 

Code :
  1. <select name="type">
  2.     <option value="vide" selected> --- Choisissez ---</option>
  3. <option value="fem"> Femme</option>
  4. <option value="hom"> Homme</option>
  5. <option value="2"> Les 2</option>
  6. </select>


(à noté que c'est un exemple ;))
 
Donc, dans l'ajout, je vérifie la valeur de "type" et si $type=='vide' benje retourne une erreur d'entrée...  
 
Juske la, pas de problemes
 
cependant, c'est lros de la modification de cette valeur que ca me chifonne...
car dans ma page modif.php, j'aimerai que l'option sélectionner, soit celle qu'il y ai a l'initiale
 
Mais je ne voit pas comment faire :/
 
merci pour votre aide  :hello:

mood
Publicité
Posté le 26-01-2003 à 14:34:09  profilanswer
 

n°294308
gm_superst​ar
Appelez-moi Super
Posté le 26-01-2003 à 15:01:19  profilanswer
 

Dans ton modif.php tu dois faire une requête pour savoir quelle est la valeur qu'il y a dans la BDD. Une fois que tu as cette valeur, il te suffit de la comparer aux 3 valeurs possible et d'ajouter le "selected" la où il y a égalité.


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°294351
L0k
Posté le 26-01-2003 à 17:20:20  profilanswer
 

Un truc du genre ?
 

Code :
  1. <SELECT name=\"nom\">
  2. <option "
  3. if($truc == "Machin" ) { print("selected " ); }
  4. value=\"Machin\" >Machin</option>" );
  5. </select>


Message édité par L0k le 26-01-2003 à 17:21:02
n°294357
gm_superst​ar
Appelez-moi Super
Posté le 26-01-2003 à 17:32:11  profilanswer
 

Voilà. Ou alors si on veut automatiser un peu plus la création du <select>, on peut utiliser un tableau de ce genre :
 
$valeur est la valeur récupérée dans la BDD, qui vaut "fem", "hom" ou "2"
 
Soit le tableau associatif :
 

Code :
  1. $select["fem"]["descriptif"] = "Femme";
  2. $select["hom"]["descriptif"] = "Homme";
  3. $select["2"]["descriptif"] = "Les 2";
  4. $select["fem"]["selection"] = "";
  5. $select["hom"]["selection"] = "";
  6. $select["2"]["selection"] = "";


 
Puis :
 

Code :
  1. $select[$valeur]["selection"] = " selected";
  2. echo "<select name=\"type\">\n";
  3. foreach ($select as $key => $v) {
  4.   echo "<option value=\"$key\" {$v["selection"]}>{$v["descriptif"]}</option>\n";
  5. }
  6. echo "</select>\n";


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°295483
kalex
Posté le 28-01-2003 à 16:12:35  profilanswer
 

Tu peux aussi faire ça (encore ;)) plus simplement.
$nom est la variable récupérer dans la base de donnée, tu sait qu'elle peut être soit "vide", "fem", "hom" ou "deux".
A partir de là, tu fais :

Code :
  1. $sel = $nom;
  2. $$sel = " selected";
  3. echo "
  4. <select name='type'>
  5.    <option value='vide'$vide> --- Choisissez ---</option>
  6.    <option value='fem'$fem> Femme</option>
  7.    <option value='hom'$hom> Homme</option>
  8.   <option value='2'$deux> Les 2</option>
  9. </select>";


Le principe est de stoquer " selected" dans une variable du nom de ta case.


Message édité par kalex le 28-01-2003 à 16:13:43
n°296247
electrasta​r
Posté le 29-01-2003 à 13:19:55  profilanswer
 

Kalex a écrit :

Tu peux aussi faire ça (encore ;)) plus simplement.
$nom est la variable récupérer dans la base de donnée, tu sait qu'elle peut être soit "vide", "fem", "hom" ou "deux".
A partir de là, tu fais :

Code :
  1. $sel = $nom;
  2. $$sel = " selected";
  3. echo "
  4. <select name='type'>
  5.    <option value='vide'$vide> --- Choisissez ---</option>
  6.    <option value='fem'$fem> Femme</option>
  7.    <option value='hom'$hom> Homme</option>
  8.   <option value='2'$deux> Les 2</option>
  9. </select>";


Le principe est de stoquer " selected" dans une variable du nom de ta case.

tu peux m'expliquer le principe j'ai pas bien compris et je comprends tjs pas :(

n°296268
kalex
Posté le 29-01-2003 à 14:08:05  profilanswer
 

Bien sur, je vais mettre des commentaires :

Code :
  1. $sel = $nom;
  2. // Ici, $sel contient une chaîne de caractère que tu sais être soit "vide", "fem", "hom" ou "deux".
  3. $$sel = " selected";
  4. /* Maintenant on stoque " selected" dans une variable du nom du contenu de $sel.
  5. Par exemple si $sel contiens "vide", tu auras une variable $vide contenant " selected".*/
  6. echo "
  7. <select name='type'>
  8.   <option value='vide'$vide> --- Choisissez ---</option>
  9.   <option value='fem'$fem> Femme</option>
  10.   <option value='hom'$hom> Homme</option>
  11. <option value='2'$deux> Les 2</option>
  12. </select>";
  13. /* Tu comprends que si $vide contiens " selected", et que $fem, $hom et $deux n'existe pas, l'affichage sera :
  14. "<select name='type'>
  15.   <option value='vide'  selected> --- Choisissez ---</option>
  16.   <option value='fem'> Femme</option>
  17.   <option value='hom'> Homme</option>
  18. <option value='2'> Les 2</option>
  19. </select>"
  20. */

Message cité 1 fois
Message édité par kalex le 29-01-2003 à 14:55:16
n°296485
electrasta​r
Posté le 29-01-2003 à 17:47:36  profilanswer
 

ah genial j'ai pu l'appliquer dans mon cas, mais en modifiant le nom, car j'ai des id avec numéros seulements, mais ca marche :jap:
 
 
ca m'evite de faire
 
if ($value = $id) {
 
  echo ' selected';
 
}  
 
a chaque ligne de mon select (qui fait 30 lignes)
 
respect :)


Message édité par electrastar le 29-01-2003 à 17:47:52
n°1358151
vingtcent
C'est c'laaaa ouiiii !
Posté le 02-05-2006 à 21:58:44  profilanswer
 

kalex a écrit :

Bien sur, je vais mettre des commentaires :
[..]


 
Comment je peux faire ça avec une liste construite dynamiquement ?
 

Code :
  1. echo <select name=\"jour\" size=\"1\">\n";
  2. for ($i = 1; $i <= 31; $i++) {
  3.   $j=str_pad($i, 2, '0', STR_PAD_LEFT); //pour tjrs avoir un nombre à deux chiffres
  4.   echo "<option value=$j>$j\n";
  5. }


Message édité par vingtcent le 02-05-2006 à 22:12:07

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [HTML&PHP] Probleme de SELECTED dans une liste déroulante

 

Sujets relatifs
[PHP] Qu'est que cela veut il dire l'operateu-> ? Est comme en C/C++?[PHP/MySQL ] Classement par lettre
Ptit problème de compile[PHP MYSQL] Empêcher de flooder
[html] validation de formulaire lorsqu'on presse entrer[PHP]Comment protéger des fichiers PHP ?
Liste des utilisateurs sous unix[HTML] Imprimer un grand tableau
[html, js] comment récupérer les coordonnées par rapport au body ?[PHP]Petite question sur sizeof
Plus de sujets relatifs à : [HTML&PHP] Probleme de SELECTED dans une liste déroulante


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR