Page 1 sur 1

Probléme liste déroulante !

Posté : 02 juil. 2007, 09:17
par angebleu17
Bonjour,

je suis en train de faire une page qui affiche les données d'un utilisateur (nom, prénom, adresse..etc) pour qu'il puisse les modifier.

Donc j'ai fait une liste déroulante pour afficher les pays (qui viennent de ma base de données), je vous met le code :
echo'<select class="texte_titre" name="pays">';

$resultat=mysql_query("select * from pays");

while ($data=mysql_fetch_array($resultat))
{
echo "<option value=\"".$data["nom_pays"]."\"".$pays.">".$data["nom_pays"]."</option>\n";
}
echo'</select></td>';
$nom_pays correspond au champ de ma base et $pays c'est le pays ou vit l'utilisateur.

Donc là la liste s'affiche bien mais j'aimerais que le pays où habite l'utilisateur soit sélectionné. Il faut utiliser selected je pense masi je n'ai pas réussi..

Merci d'avance pour vos réponses.

Posté : 02 juil. 2007, 09:39
par Truc
Salut,

Tu peux regarder ce sujet de la FAQ

Posté : 02 juil. 2007, 09:44
par angebleu17
Quand je clique sur le lien, ça me met :"Le sujet ou message que vous recherchez n'existe pas"

Posté : 02 juil. 2007, 09:53
par mega
Salut,

Tu as juste à faire ceci :
echo "<option value=\"".$data["nom_pays"]."\"".$pays." ";//ne pas oublier un espace pour accepter l'éventuel selected
if (...//ta condition en fonction de la requête avec jointure ou non, je sais pas comment tu relies le pays à son utilisateur
{
echo 'selected';}
echo '>".$data["nom_pays"]."</option>\n"; 
Voilà en gros le topo, tu coupes ton echo pour y aposer ta condition.

Bon courage

Mega :)

Posté : 02 juil. 2007, 10:11
par angebleu17
merci pour ta réponse mais ça ne marche pas..

ça m'affiche ça : ".$data["nom_pays"]."\n"

il doit y avoir un probléme avec les " ou ' :(

Posté : 02 juil. 2007, 10:14
par Truc
Autant pour moi... :oops:
j'ai édité le lien

Posté : 02 juil. 2007, 10:29
par Megadeth
Re,

Pourquoi le $data["nom_pays"]."\"".$pays ????

Comment relies-tu ta table pays à la colonne pays de ton utilisateur ?

Sinon dans l'idée mon code fonctionne. Restes plus qu'à l'adapter ;)

echo '<option value="'.$data["nom_pays"].'" ';//ne pas oublier un espace pour accepter l'éventuel selected
if (...//ta condition en fonction de la requête avec jointure ou non, je sais pas comment tu relies le pays à son utilisateur
{
echo 'selected';}
echo '>'.$data["nom_pays"].'</option>\n';
C'est déjà plus propre :)

Posté : 02 juil. 2007, 16:17
par angebleu17
bah en fait les tables ne sont pas relié.

La table pays permer d'afficher une liste de pays et j'aimerais sélectionné le pays ou vit la personne. Il n'y a pas besoin de liaison pour ça ??

En tout cas ça ne marche toujours pas.. soit il affiche bien tous les pays mais sléectionne le 1er sinon il affiche un seul pays (celui ou habite la personne) !!

Posté : 02 juil. 2007, 16:28
par Megadeth
Re(prenons)

Tu cherches bien à ce qu'une personne déjà créée revienne sur sa fiche et voit le pays qu'il avait sélectionné initialement comme pour le nom, prénom...? Peux-tu (ré)xpliciter cette partie stp merci.
Si c'est le cas, comment et où stockes-tu cette info dans ta base ?

Mega :)

Posté : 02 juil. 2007, 16:57
par Invité
oui c'est bien ça.

J'ai une table pays avec une liste de pays. et dans la table personne j'ai les champs: nom, prenom,adresse..etc et pays.

donc j'aimerais afficher le pays de la personne et non le premier de la liste.

De plus j'ai un autre petit probléme, pour metre a jour les information. Pour les champs nom, prénom..etc j'ai mis value = $valeur. Donc ça affiche bien le nom , prénom de la personne mais lorsque je clique sur valider en modifiant le nom, il remet l'ancien, en fait il ne modifie pas.. d'ou ça vient ??

Posté : 03 juil. 2007, 09:16
par angebleu17
C'est bon j'ai résolu mon pb avec la liste déroulante :
$resultat=mysql_query("select distinct nom_pays from pays");

echo'<select class="texte_titre" name="pays">';
echo' <option selected="selected">'.$pays.'</option>';

while ($data=mysql_fetch_array($resultat))
{
	//Si le pays est différent de celui déjà sélectionné on ne l'affiche pas (sinon doublon)
	if ($data["nom_pays"] != $pays)
	{
	echo' <option value="'.$data["nom_pays"].'">'.$data["nom_pays"].'</option>';
	}
}	
echo'</select>';