Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

GÉNÉRATEUR DE LISTE DÉROULANTE


Information sur la source

Description

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

  • <?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) );?>
<?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
 

Commentaires et avis

signaler à un administrateur
Commentaire de bgastinel le 07/03/2008 13:22:33

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.

signaler à un administrateur
Commentaire de Louis13 le 12/04/2008 11:33:46

Je ne suis pas arrivé à traiter une valeur selected que j'avais mise.
cela marche bien à part le selected
sinon c'est super

signaler à un administrateur
Commentaire de caviar le 14/04/2008 13:58:05

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, '', '');

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

lier liste deroulante [ par johnmichel ] bonjour, je souhaiterais lier deux liste d&#233;roulante que je charge a partir d'une base de donn&#233;e&nbsp;&nbsp;&nbsp; &lt;?php &nbsp;&nbsp;&nbsp remplir une liste deroulante en fonction d'une autre [ par gregou9 ] J'aimerais savoir cmt remplir ma seconde liste deroulante (act) en fonction de la premiere (coffr). Voici mon code:$liste_coffret="SELECT id,nom_fr fr Problème de liste liées [ par developpeuse21 ] Bonjour salut tt le monde ,je suis ravie de vous joindre voila .j'ai un probleme .j'ai une liste deroulante liee qui marche bien mais le probleme c'es besoin d'aide [ par hwm86 ] bonjour mes amis..j'ai besoin de votre aide.. je veux créer 2 liste de sélection et l'idée de créer la deuxième après que la première prend une valeur recuperer une valeur select dans une var php dans la meme page [ par hraiwen ] je veux détailler mon pblem esperant que quelqu'un peut m'aider voila mon code &lt;td valign="top"&gt;&lt;select name="sect" id="secteur" &gt; &lt;opt probleme pour générer un xml [ par scoubydog ] Bonjour à tous, je voudrais savoir comment récupérer en xml toute la liste des images d'une base de donnée en les classant dans leurs albums respectif pb liste déroulante [ par CapitaineJackSparrow ] Je veux récupérer dans une liste déroulante les données que j'ai dans une table, ça avait marché mais depuis j'ai du toucher à quelques puique celà ne pb code php [ par mickael56100 ] &lt;?phpheader('Content-type: text') ; // on déclare ce qui va être afficher // test des POST emisif ((isset($_POST['id']) &amp;&amp; !empty($_POST['i comment forcer l'affichage d'un count = 0 dans un tableau [ par atolldecolombo ] bonjour je souhaite créé un comparatif sur des membres d'une assos sur 2 annéesmon problème est que certaines années des champs ne sont pas remplisex Liste déroulante mysql [ par Tittano ] Bonjour,alors voila je suis débutant, j'ai pas mal cherché sur internet mais j'ai un petit problèmeJ'ai une base de donnée saisie avec une table saisi


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,342 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.