Générer une liste déroulante HTML de nombres
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');*/$html = '<select name="'. $name .'"';foreach($options as $name => $value) {$html.= ' '. $name .'="'. $value .'"';}}$html.= '>'."\n";// Label vide$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?>
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 !
