Pb liste déroulante

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Pb liste déroulante

par sadeq » 06 juil. 2007, 15:23

Non, il faut reprendre, comme l'a bien expliqué thehawk, une liste <SELECT> en HTML s'écrit:

Code : Tout sélectionner

<SELECT name="nom de la liste"> <OPTION value="valeur à sélectionner">Texte affiché</OPTION> <OPTION value="valeur à sélectionner">Texte affiché</OPTION> <OPTION value="valeur à sélectionner">Texte affiché</OPTION> ... </SELECT>
Où les lignes <OPTION> sont les élèments affichés dans la liste, quand on la déroule, on voit le texte affiché entre <OPTION>et</OPTION> et quand on sélectionne une valeur, la liste en tantque champ du formulaire prend la valeur sélectionnée mentionnée dans <OPTION value=...
La valeur dans le mot value= peut être la même que le texte affiché ça ne gène en rien.
Si le mot value= est absent, la valeur est alors le n° de la ligne sélectionnée. Les lignes d'une liste étant numérotée automatiquemnt de 0 à N selon sa taille.

En PHP, on peut générer la partie variable des options dans le cadre d'une boucle avec de simples echos.

Maintenant, à toi:
Sachant que le nom de ta liste est : "Code_Postal"
et les textes et valeurs de ses options sont ceux que tu lit par ta requête ($line['com_cp'])
Peux-tu corriger ton programme en conséquence?

par laeti » 06 juil. 2007, 15:16

Merci pour ces précisions.

J'ai corrigé la ligne indiquée, ce qui donne maintenant:

Code : Tout sélectionner

[php] while ($line=pg_fetch_array($req)) { echo "<option name='Code_Postal'>".$line['com_cp']."</option>"; }[/php]

par thehawk » 06 juil. 2007, 15:06

Ton probleme correspond plus au forum "Debutant PHP" ....

Mais bon ton erreur proveiny de ta boucle qui renvoi des données inapropriées

Donc tu as fait ceci :
while ($line=pg_fetch_array($req))
                        {
                            echo $line['com_cp'];
                            echo "<br/>";
                        } 
Qui affiche tes resultats a la suite
le resultats de cette boucles donne par exemple :

Code : Tout sélectionner

<TR> <TD><font face="Verdana" size="2">Code Postal :</font></TD> <TD><select size="1"><option name="Code_Postal"> 1<br>2<br>3<br>4
Voit tu ce qui cloche ?

Or si j'ai bien compris tu souhaiterai quelque chose comme :

Code : Tout sélectionner

<TR> <TD><font face="Verdana" size="2">Code Postal :</font></TD> <TD><select size="1" name="Code_Postal"> <option>1</option><option>2</option> <option>3</option><option>4</option></select>
Un petit indice regarde plus preciemsent cette ligne : echo $line['com_cp'];

Pb liste déroulante

par laeti17 » 06 juil. 2007, 14:32

Bonjour,

Je suis novice en programmation et j'ai un pb avec une liste déroulante.
Le contenu est le résultat d'une requête dans une base de données Postgres. Mes données s'affichent les unes à la suite des autres alors que j'aimerai obtenir une liste.
Pouvez-vous m'aider, svp?

Voici mon bout de code:

<TR>
<TD><font face="Verdana" size="2">Code Postal :</font></TD>
<TD><select size="1"><option name="Code_Postal">
				 <?php
						// requête sql
						$sql = "SELECT DISTINCT com_cp FROM commune ORDER BY com_cp asc";
	
						// on sélectionne toutes les entrées de la table
						$req=pg_query($sql) or die('Erreur SQL !'.$sql.'<br>'.pg_resul_error());
						
						//On affiche ces entrées
						while ($line=pg_fetch_array($req))
						{
							echo $line['com_cp'];
							echo "<br/>";
						}
				?></select> </TD>
[/code]