<?php
// ------------------------------------------------------------------------- //
// listes d'éléments -> menus déroulants //
// ------------------------------------------------------------------------- //
// Auteur: Jérémy <jeremy.listes@free.fr> //
// Web: //
// ------------------------------------------------------------------------- //
/*
Cette fonction permet de générer le code HTML qui correspond à un menu déroulant
ou une liste à choix multiples pour les colonnes SET ou ENUM de MySQL.
Les paramètres $nom_table, et $col_table sont explicites.
Le paramètre $multiple permet de spécifier si plusieurs choix sont possibles dans
la liste et le paramètre $max dit combien d'options sont à afficher au maximum.
Si on a une liste déroulante, on ajoutte une option au début pour indiquer qu'il
faut sélectioner un élément.
*/
function setenum_to_select($table_name,$col_name,$multiple="1",$max='5') {
$sql = "SHOW COLUMNS FROM $table_name LIKE '$col_name'";
connect_mysql();
$res = mysql_query($sql);
$row = mysql_fetch_object($res);
$set_list = ereg_replace("set\(|enum\(|\)","",$row->Type);
$set_list = explode(",",$set_list);
$size = count($set_list);
if ( $size > 1 ) {
if ( $size > $max ) $size = $max;
if ( $multiple == "1" ) $multiple .= " multiple=multiple";
else $multiple = "";
} else {
$multiple = "";
$size = 1;
}
$strRes = "\n<select size='".$size."' name='".$col_name."'".$multiple.">";
if ( $size == 1 ) $strRes .= "\n<option value='0'>Sélectionner</option>";
foreach ( $set_list as $val ) {
$val = str_replace("'","",$val);
$strRes .= "\n<option value='".$val."'>".$val."</option>";
}
$strRes .= "\n</select>";
return $strRes;
}
?>