Liste deroulante

Signaler
Messages postés
27
Date d'inscription
vendredi 25 août 2006
Statut
Membre
Dernière intervention
5 juin 2008
-
Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
-
Bonjour à tous,
Je suis debutant en PHP.
Je voudrais savoir comment consrerver une valeur dans une liste déroulante
lors du rafraîchissement de la page...
Voici mon code,  je n'ai pas d'erreur  du serveur mais je ne conserve pas la valeur selectionnée:

<?php
    session_start(
 
      
$rqSql = "SELECT id_categorie, nom_categorie FROM categories_plats ORDER BY nom_categorie"  ;
       

//Creation d'un formulaire afin de recuperer le type de plat sélectionné
// Construction de la chaîne de caractères qui fait la // liste

$liste_plats = "<form action='recettes1.php' method='post'> <SELECT NAME='lstplats'>" ;
//$ld .= "<OPTION VALUE=0></OPTION>";
// On boucle sur la table

while ($ligne=mysql_fetch_array($result)) {
  
    $mumCat = $ligne["id_categorie"];
    $nomCat = $ligne["nom_categorie"];
     global $mumCat ;
     global $nomCat  ;
   
    if ($_SESSION[sel_plat])
{
$selected=$_SESSION[sel_plat];

}

   
              $liste_plats .=
"<option value='$nomCat' $selected='selected'>".$GLOBALS["$nomcat"]."$nomCat</OPTION>";
   
    }

$liste_plats .= "</SELECT>";

$liste_plats .="</form>";

echo $liste_plats ;
 

.|Anselme&co|.

6 réponses

Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Salut!
Je comprends pas trop... Tu peux avoir un item qui est sélectionné par défaut (par exemple si tu passes par l'url une info pour savoir lequel doit être sélectionné)...

Mais si tu refresh juste (sans aucune info donnée sur lequel tu gardes) je suis pas sûr que tu puisse le faire...

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
27
Date d'inscription
vendredi 25 août 2006
Statut
Membre
Dernière intervention
5 juin 2008

Bonjour et merci d'ecouter les débutant comme moi...

En fait je me suis sans doute mal exprimé ...
Je souhaite juste conserver la valeur choisie dans ma liste déroulante lorsque
l'internaute envoie sa selection.

Merci encore.

.|Anselme&co|.
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Oki, alors:
Il faut que tu récupère la valeur parr défaut dans $defautCat (si les données ont été envoyées, tu récupère dans post et si ca a pas été envoyé, tu en défini une par défaut).

Ensuite, tu remplaces:
$liste_plats .=
"<option value='$nomCat' $selected='selected'>".$GLOBALS["$nomcat"]."$nomCat</OPTION>";

Par:
$liste_plats .= '<option value="' . $nomCat  . '" ' . ( $defautCat == $nomCat  ? 'selected="selected"' : '' ) . '>' . $GLOBALS[$nomcat] . $nomCat . '</option>';
>> Essaye d'utiliser plutôt des ' ' que des " ", :)

( $defautCat == $nomCat  ? 'selected="selected"' : '' )
>> si $defautCat est égal à $nomCat on ajoute 'selected="selected"' et sinon on ajoute un vide...

Ca te va?

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
5
ca serait pas plutot un truc comme ca :

if ($_SESSION[sel_plat])

{
    $selected=$_SESSION[sel_plat];
} else {
    $selected = '';
}

while ($ligne=mysql_fetch_array($result)) {
  
    $mumCat = $ligne["id_categorie"];
    $nomCat = $ligne["nom_categorie"];
     global $mumCat ;
     global $nomCat  ;
   
$liste_plats .= "<option value='$nomCat' ". ($nomCat == $selected)? "selected":"" .">".$GLOBALS["$nomcat"]."$nomCat</OPTION>";
   
    }

$liste_plats .= "</SELECT>";

($nomCat == $selected)? "selected":"" affiche "selected si $nomCat est egal à $selected, et une chaine vide sinon
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Pour un valide XHTML: selected="selected" et non juste selected

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
5
ok, merci pour l'info raf :)