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 :

Garder un élement de liste sélectionné après validation


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Par défaut Garder un élement de liste sélectionné après validation
    Bonjour,

    J'ai un soucis avec les listes déroulantes.
    Après sélection d'un élément de la liste, je souhaiterais que
    l'élement choisi reste sélectionné après validation mais ça ne
    fonctionne pas.

    Pourriez-vous m'aider svp?

    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $query = "SELECT ID, prenom, nom FROM `users` Order by nom";
    $res = mysql_query($query);
     
    print "<b><Font Size = 5> 1) Sélectionner l'utilisateur".'<BR>'.'<BR>';
           print "<Select name ='liste_utilisateurs' onchange ='submit()'>";
                   while ($ligne = mysql_fetch_row($res))
                           {
                            if($ligne[0]=='lsite_utilisateurs') print "<Option value
    =".$ligne[0]."selected>".$ligne[1].$ligne[2];
                            else print "<Option value =".$ligne[0]." >".$ligne[1].$ligne[2];
                           }
     
    print "</Select>";

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Bonjour

    La syntaxe correcte de la balise option est :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="ma_valeur" selected > ce qu'on ecrit </option>
    Donc il te manque les balises </option>, les quotes autour de la valeur et je pense qu'un espace entre la valeur et le selected ne ferait pas de mal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while ($ligne = mysql_fetch_row($res))
    {
        if($ligne[0]=='lsite_utilisateurs') print '<Option value = "'.$ligne[0].'" selected >'.$ligne[1].$ligne[2].'</option>';
        else print '<Option value = "'.$ligne[0].'" >'.$ligne[1].$ligne[2].'</option>';
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Par défaut
    De plus, tu as fait une faute de typo sur le nom de tes variables.
    Tu as :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($ligne[0]=='lsite_utilisateurs')
    et je pense que tu devrais mettre liste_utilisateurs

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Par défaut
    Merci pour vos réponses.
    J'ai apporté les modifications que vous m'avez suggerées mais cela n'a pas résolu mon problème.
    Lorsque je sélectionne un élement de la liste il ne garde pas cet élement sélectionné après submit.

    Voici le code retouché :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    print "<b><Font Size = 5> 1) Sélectionner l'utilisateur".'<BR>'.'<BR>';
    	print "<Select name ='liste_utilisateurs' onchange ='submit()'>";
    		while ($ligne = mysql_fetch_row($res))
    			{
    			 IF ($ligne[0]=='liste_utilisateurs') print "<Option value = '$ligne[0]' selected> $ligne[1] $ligne[2] </Option>";
    			 else print "<Option value = '$ligne[0]' > $ligne[1] $ligne[2] </Option>";	
    			}		
    print "</Select>";

  5. #5
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    je pense que le problème vient de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF ($ligne[0]=='liste_utilisateurs')
    tu compares la valeur de la BDD au nom de la liste déroulante !
    il faut plutot faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF ($ligne[0]== $_POST['liste_utilisateurs'])

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Oups, je devrais mieux lire les codes. Ta condition n'est pas correcte
    Ce que tu veux, c'est si la valeur courante (ligne[0]) est égale à celle qui a été envoyée par le submit, alors on sélectionne cette ligne. C'est bien ça ?

    Donc tu dois comparer ligne[0] et $_POST['liste_utilisateur'] :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if ( !empty($_POST['liste_utilisateur']) && $ligne[0]==$_POST['liste_utilisateur']) 
    print "<Option value = '$ligne[0]' selected> $ligne[1] $ligne[2] </Option>";
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Par défaut
    Mais que suis-je bête!
    C'était effectivement ça mon problème merci infiniment !

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 17/12/2013, 18h51
  2. Garder formulaire après validation
    Par Shogun dans le forum Struts 1
    Réponses: 7
    Dernier message: 10/07/2009, 20h08
  3. garder l'etat d'une liste multiple apres le submit
    Par raul_le_vieux dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/06/2007, 12h27
  4. Réponses: 1
    Dernier message: 04/06/2006, 01h35
  5. Réponses: 4
    Dernier message: 19/10/2005, 00h22

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