Générateur de liste déroulante

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 033 fois - Téléchargée 19 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
Messages postés
54
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
8 avril 2013

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
Messages postés
329
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
29 mars 2015
3
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, '', '');
Messages postés
3
Date d'inscription
jeudi 24 juin 2004
Statut
Membre
Dernière intervention
12 avril 2008

Je ne suis pas arrivé à traiter une valeur selected que j'avais mise.
cela marche bien à part le selected
sinon c'est super
Messages postés
2
Date d'inscription
vendredi 7 mars 2008
Statut
Membre
Dernière intervention
7 mars 2008

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.