Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/07/2007, 14h27   #1
Invité de passage
 
Inscription : juillet 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 21
Points : 2
Points : 2
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 :
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>";
Elrubio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 15h32   #2
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

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

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
Bonjour

La syntaxe correcte de la balise option est :
Code html :
<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 :
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)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 15h57   #3
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
De plus, tu as fait une faute de typo sur le nom de tes variables.
Tu as :
Code :
if($ligne[0]=='lsite_utilisateurs')
et je pense que tu devrais mettre liste_utilisateurs
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 09h33   #4
Invité de passage
 
Inscription : juillet 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 21
Points : 2
Points : 2
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 :
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>";
Elrubio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 09h35   #5
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
je pense que le problème vient de
Code :
IF ($ligne[0]=='liste_utilisateurs')
tu compares la valeur de la BDD au nom de la liste déroulante !
il faut plutot faire
Code :
IF ($ligne[0]== $_POST['liste_utilisateurs'])
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 09h38   #6
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

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

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
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 :
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)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 09h47   #7
Invité de passage
 
Inscription : juillet 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 21
Points : 2
Points : 2
Mais que suis-je bête!
C'était effectivement ça mon problème merci infiniment !
Elrubio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 09h50   #8
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

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

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
De rien ! et bonne continuation
__________________
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)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h53.


 
 
 
 
Partenaires

Hébergement Web