Liste deroulante

emlesna Messages postés 27 Date d'inscription vendredi 25 août 2006 Statut Membre Dernière intervention 5 juin 2008 - 25 août 2006 à 00:58
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 - 28 août 2006 à 21:32
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

coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
25 août 2006 à 08:46
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???"
0
emlesna Messages postés 27 Date d'inscription vendredi 25 août 2006 Statut Membre Dernière intervention 5 juin 2008
25 août 2006 à 09:25
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|.
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
25 août 2006 à 09:31
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???"
0
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
27 août 2006 à 12:44
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
28 août 2006 à 21:19
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???"
0
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
28 août 2006 à 21:32
ok, merci pour l'info raf :)
0
Rejoignez-nous