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!!
Configuration: Mac OS X
Firefox 2.0.0.14

6 réponses

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

      <select>
      <?php afficherListeDeroulante(.......); ?>
      </select>
      0
  2. gigaga Messages postés 2347 Date d'inscription   Statut Membre Dernière intervention   301
     
    ferme les option pour voir?
    0
    1. Alain_42 Messages postés 5413 Statut Membre 904
       
      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
  3. gigaga Messages postés 2347 Date d'inscription   Statut Membre Dernière intervention   301
     
    C'est quoi le source HTML généré?
    0
    1. Alain_42 Messages postés 5413 Statut Membre 904
       
      echo "<option value='$id' selected> $val</option>";

      etc;

      mais pour être puriste on devrait utiliser le return au lieu des echo
      0
  4. RaphTal
     
    Ca marche parfaitement!! Merci beaucoup! Je ne vois pas d'où vient mon erreur...
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. gigaga Messages postés 2347 Date d'inscription   Statut Membre Dernière intervention   301
     
    Qu'as tu fais finalement?
    0
  7. 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