Générateur de liste déroulante

0/5 (4 avis)

Snippet vu 13 214 fois - Téléchargée 20 fois

Contenu du snippet

Petite fonction qui peut vous servir pour générer des listes déroulantes dans un formulaire.
très simple à utiliser ça évite de faire un code tout pas beau dans une page web en répétant à chaque fois la même chose ....

Source / Exemple :


<?php

/*
La connexion doit être effective à la bdd mysql
$table : $table de la bdd concernée
$value : colone de la table à seter dans les values
$key : colone de la table à  afficher dans le champ
$where : condition optionnelle du select
$origin : tableau $key => $value des options a préséter
$selected : value de l'option sélectionnée
$multiple : true = liste a selection multiple
$class : class css a appliquer
$style: $style css a appliquer

description : fonction qui génère un élément de formulaire liste déroulante sélect

  • /
function gener_select ($name, $table, $value, $key, $where='', $origin=array(), $id='', $selected='', $multiple=false, $class='', $style='') { if(!isset($name) or !isset($table) or !isset($value) or !isset($key)) { return false; break; } echo '<select '; if ($multiple == true) {echo ' multiple ';} if ($class != '') {echo 'class="'.$class.'"';} if ($style != '') {echo 'style="'.$style.'"';} echo ' name="'.$name.'" '; if ($id != '') {echo 'id="'.$id.'"';} echo '>'."\n\r"; //si on a un tableau d'options préremplis on les génère foreach ($origin as $k => $v) { echo '<option value="'.$v.'"'; if($v == $selected) { echo ' selected="selected" '; } echo '>'; echo $k; echo '</option>'."\n\r"; } //on sélect les données dans la bdd $rkt = 'select '.$value.', '.$key.' from '.$table.' '.$where; $req = mysql_query($rkt); while ($val = mysql_fetch_array($req)) { echo '<option value="'.$val[$value].'"'; if($val[$value] == $selected) { echo ' selected="selected" '; } echo '>'; echo $val[$key]; echo '</option>'."\n\r"; } echo '</select>'; echo $rkt ; } ?> exemple <?php //name, table ,value, key, where, origin, id, selected, multiple, class, style gener_select('id_presta' ,'presta', 'id_presta','comment_presta', '',array('Aucune' => 0) );?>

Conclusion :


seuls les 4 premiers paramètres sont obligatoires ... donc elle peut s'utiliser avec juste 4 param

A voir également

Ajouter un commentaire Commentaires
cs_claude77260 Messages postés 54 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 8 avril 2013
21 sept. 2012 à 14:33
Bonjour

si j'ai tout compris

echo $val[$key];

devrait retourner l'id du choix de la combo
pour pouvoir le traiter dans le script principal
que nini

d'autre part ilest dit une ou plusieurs combo d'un formulaire
mais il il a un rechargement de page à chaque combo ??? en retraitant l'id de la combo dans la requête du script principal

j'ai testé le script d'import csv super !!!!

si tu passes encore par là , a te lire
cs_caviar Messages postés 329 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 29 mars 2015 2
14 avril 2008 à 13:58
c'est le para$selected
pour les paramètres précédents il faut envoyer une chaine vide
gener_select ('nom', 'table', 'val', 'key', '', '', '', 'valeur a selectionner', false, '', '');
cs_Louis13 Messages postés 3 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 12 avril 2008
12 avril 2008 à 11:33
Je ne suis pas arrivé à traiter une valeur selected que j'avais mise.
cela marche bien à part le selected
sinon c'est super
bgastinel Messages postés 2 Date d'inscription vendredi 7 mars 2008 Statut Membre Dernière intervention 7 mars 2008
7 mars 2008 à 13:22
Super fonction,
Elle est facile, pratique et clair.

Par contre j'ai un souci avec le selected dans la bdd. Si tu pouvais nous donner un exemple avec les différentes options cela serait super.

Merci encore.

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.