Générer une liste déroulante HTML de nombres - Apprendre-PHP.com

Rechercher
Boutique en ligne, solution e-commerce, script PHP et PERL : RAYNETTE

Générer une liste déroulante HTML de nombres

  • Par Emacs
  • 0 commentaire
  • 416 lectures
  • De Hugo HAMON
  • RSS -  Atom
ElePHPant El-Roubio

Cette petite fonction permet de générer une liste déroulante de nombres en une seule ligne de code. Il suffit de lui fournir quelques paramètres obligatoires tels que son nom, la valeur de départ, la valeur d'arrivée, la valeur par défaut et quelques autres données facultatives pour obtenir une belle liste déroulante sexy.

Portion de code

Code PHP de la fonction
<?php
 
/**
 * Génère une liste déroulante de nombres
 *
 * @author Hugo HAMON <webmaster@apprendre-php.com>
 * @param string $name Nom de la liste déroulante
 * @param int $from Valeur de départ (ex: 1970)
 * @param int $to Valeur d'arrivée (ex: 2020)
 * @param int $selected Value par défaut sélectionnée
 * @param array $options Tableau associatif des couples attributs / valeur du tag <select>
 * @param string $first Première option de la liste (ex: Année de naissance)
 * @param int $pas Pas d'incrémentation (par défaut à 1)
 * @return string $html Code html de la liste déroulante
 *
 * @example
 * select_numbers('mois', 1, 12, 7, array('id'=>'mois', 'onchange'=>'this.form.submit()'), 'Votre mois de naissance');
 */
function select_numbers($name, $from, $to, $selected=0, $options=array(), $first='', $pas=1) {
 
$html = '<select name="'. $name .'"';
 
if(is_array($options) && sizeof($options)>0) {
foreach($options as $name => $value) {
$html.= ' '. $name .'="'. $value .'"';
}
}
$html.= '>'."\n";
 
// Label vide
if(!empty($first)) {
$html.= "\t".'<option value="">'. $first .'</option>'."\n";
}
 
for($i=$from; $i<=$to; $i=$i+$pas) {
$html.= "\t".'<option value="'. $i .'"';
$html.= ($i == $selected) ? ' selected="selected"' : '';
$html.= '>'. $i .'</option>'."\n";
}
 
$html.= '</select>'."\n";
return $html;
}
?>

 

Exemple d'appel de la fonction
<?php
 
echo select_numbers('mois', 1, 12, 7, array('id'=>'mois'),'Mois');
 
?>

 

Code HTML final produit par la fonction
<select name="mois" id="mois">
<option value="">Mois</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7" selected="selected">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>

Les commentaires

Soyez le premier à réagir !

Ajouter un commentaire

Votre avis
Se souvenir de mes informations