Générateur de liste déroulante

Contenu du snippet

Voici une petite fonction sans prétention mais qui peut rendre des services :)
Elle permet, à partir d'une requête SQL, de retourner le code HTML d'une liste déroulante (<select><option>...).
On peut également définir une valeur par défaut lors de l'affichage de la liste déroulante (selected="selected") grâce au paramètre $selected auquel vous attribuez l'identifiant de l'élément à afficher. L'élément 0 est l'élément affiché par defaut.
Le paramètre $nom correspond à l'attribut "name" de la liste.

Voilà, simple comme "bonjour" :)

Source / Exemple :


/**

  • Fonction creer_select
  • Renvoi le code HTML d'une liste déroulante en fonction de la requête
  • SQL ($sql). La liste déroulante portera le nom $nom et sélectionnera
  • par défaut l'élément portant l'id $selected
    • /
function creer_select ($sql, $nom, $selected = 0, $defautSelected = 'Cliquez ici pour sélectionner') { // On execute la requête if (false != ($query = mysql_query ($sql))) { // On vérifie que la requête retourne quelque chose if (mysql_num_rows ($query) != 0) { // Variable $html contenant le code HTML à renvoyer $html = '<select name="'.$nom.'"> <option value="0"'.(($selected == 0)?' selected="selected"':'').'>'.$defautSelected.'</option>'; // Boucle parcourant le résultat de la requête while ($value = mysql_fetch_row ($query)) { // Pour chaque enregistrement on ajoute une option dans la liste $html .= ' <option value="'.$value[0].'"'.(($selected == $value[0])?' selected="selected"':'').'>'.$value[1].'</option>'; } // Fin de la liste déroulante $html .= '</select>'; // On renvoi le code HTML return $html; // Sinon, si la requête ne retourne rien } else { // On renvoi false return false; } // Sinon la requête est fausse } else { // On renvoi false return false; } }

Conclusion :


Je n'ai pas constaté de bug mais je n'ai pas non plus tester ma fonction dans tous les sens.
Donc si vous voyez des corrections ou des améliorations à apporter, je suis à l'écoute :)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.