Liste déroulante en html

RaphTal -  
 RaphTAl -
Bonjour,

Je développe actuellement un site surlequel il y'a pas mal de formulaires html. J'utilise des listes déroulantes (<select>...</select>) générées dynamiquement par php comme suit :


function afficherListeDeroulante($table,$identificateur,$valeur,$valeurDefaut="0") {
$requete = "SELECT * FROM $table ORDER BY $valeur";
$resultat = mysql_query ($requete) or die (mysql_error());
$nombre=mysql_num_rows($resultat);
for ($i=0; $i<$nombre; $i++) {
$id=stripslashes(mysql_result($resultat, $i, "$identificateur"));
$val=stripslashes(mysql_result($resultat, $i, "$valeur"));
if ($id==$valeurDefaut) { echo "<option value='$id' selected> $val"; }
else { echo "<option value='$id'> $val"; }
echo "<option value='$id'> $val";
}
}


Mon attribut selected n'a absolument aucun effet.... POurriez vous me dire comment préselectionner une valeur??

Merci bcp!!
A voir également:

6 réponses

gigaga Messages postés 2347 Date d'inscription   Statut Membre Dernière intervention   301
 
Je ne vois pas <select> et </select>
0
RaphTal
 
Euh oui en fait j'appelle ma fonction ainsi :

<select>
<?php afficherListeDeroulante(.......); ?>
</select>
0
gigaga Messages postés 2347 Date d'inscription   Statut Membre Dernière intervention   301
 
ferme les option pour voir?
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
Bonsoir,

Normal tu "sort" deux fois tes valeurs extraites par mysql_result, pas possible

for ($i=0; $i<$nombre; $i++) {
$id=stripslashes(mysql_result($resultat, $i, "$identificateur"));
$val=stripslashes(mysql_result($resultat, $i, "$valeur"));
if ($id==$valeurDefaut) { echo "<option value='$id' selected> $val"; }



Essayes:
function afficherListeDeroulante($table,$identificateur,$valeur,$valeurDefaut="0") {
	$requete = "SELECT * FROM $table ORDER BY $valeur";
	$resultat = mysql_query ($requete) or die (mysql_error());
	//$nombre=mysql_num_rows($resultat);
	while($ligne=mysql_fetch_array($resultat)){
		$id=stripslashes($ligne[$identificateur]);
		$val=stripslashes($ligne[$valeur]);
		if ($id==$valeurDefaut) { 
			echo "<option value='$id' selected> $val</option>"; 
		}else {
			echo "<option value='$id'> $val</option>";
			}
	}
} 
0
gigaga Messages postés 2347 Date d'inscription   Statut Membre Dernière intervention   301
 
C'est quoi le source HTML généré?
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
echo "<option value='$id' selected> $val</option>";

etc;

mais pour être puriste on devrait utiliser le return au lieu des echo
0
RaphTal
 
Ca marche parfaitement!! Merci beaucoup! Je ne vois pas d'où vient mon erreur...
0

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

Posez votre question
gigaga Messages postés 2347 Date d'inscription   Statut Membre Dernière intervention   301
 
Qu'as tu fais finalement?
0
RaphTAl
 
Bah j'ai remplacé ma fonction php par :

function afficherListeDeroulante($table,$identificateur,$valeur,$valeurDefaut="0") {
$requete = "SELECT * FROM $table ORDER BY $valeur";
$resultat = mysql_query ($requete) or die (mysql_error());
//$nombre=mysql_num_rows($resultat);
while($ligne=mysql_fetch_array($resultat)){
$id=stripslashes($ligne[$identificateur]);
$val=stripslashes($ligne[$valeur]);
if ($id==$valeurDefaut) {
echo "<option value='$id' selected> $val</option>";
}else {
echo "<option value='$id'> $val</option>";
}
}
}

Voila. Merci encore.
0