La communauté ALL HTML c'est 58026 membres à ce jour dont 2 inscrits aujourd'hui et 31 depuis une semaine.
Article publié le mardi 23 janvier 2007 par FabHacker.
Cet article est classé dans les catégories « PHP »
Je vous propose une class Php à inclure dans vos script pour pouvoir gérer très simplement les listes déroulantes <select>, notamment pour les listes dynamiques.
<?php
// ------------------------------------
// CLASS SELECT
// Simplification de l'écriture des listes déroulantes
// par FabHacker
// ------------------------------------
/* LISTE DES FONCTIONS
Select($nom) - Constructeur
ajouter_choix($libelle,$valeur,$special) - Ajoute un choix
supprimer_choix($valeur) - Supprime un choix
template_defaut() - Définit le template par défaut
code_html() - Retourne le code HTML de la liste
reset() - Remet à zéro l'objet
*/
class Select {
var $nom; // Champ "name" de la balise select
var $choix; // Contient tous les choix possibles
var $template; // Définit le code HTML de la liste
// Constructeur
function Select($nom = '') {
$this->nom = $nom;
$this->choix = Array();
$this->template_defaut();
}
// Ajoute un choix à la liste
function ajouter_choix($libelle,$valeur,$special = '') {
$this->choix[] = Array($valeur,$libelle,$special);
}
// Supprime un choix à la liste
function supprimer_choix($valeur) {
$temp = Array();
for($i = 0; $i < sizeof($this->choix); $i++) {
if($this->choix[$i][0] != $valeur) $temp[] = $this->choix[$i];
}
$this->choix = $temp;
}
// Définit le template par défaut
function template_defaut() {
$this->template = Array(
'debut' => '<select name="%NOM%">' . "\n",
'option' => "\t" . '<option value="%VALEUR%"%SPECIAL%>%LIBELLE%</option>' . "\n",
'fin' => '</select>' . "\n"
);
}
// Retourne le code HTML de la liste
function code_html() {
$code = str_replace( Array('%NOM%') , Array($this->nom,$this->special[0]) ,$this->template['debut']);
$src = Array('%VALEUR%','%LIBELLE%','%SPECIAL%');
for($i = 0; $i < sizeof($this->choix); $i++) {
$dest = Array( $this->choix[$i][0] , htmlentities($this->choix[$i][1]) , $this->choix[$i][2] );
$code .= str_replace($src,$dest,$this->template['option']);
}
$code .= $this->template['fin'];
return $code;
}
// Remet à zéro l'objet
function reset($nom = '') {
if($nom != '') $this->nom = $nom;
$this->choix = Array();
$this->template_defaut();
}
}
?>$this->template = Array(
'debut' => '<select name="%NOM%">' . "\n",
'option' => "\t" . '<option value="%VALEUR%"%SPECIAL%>%LIBELLE%</option>' . "\n",
'fin' => '</select>' . "\n"
);<?php
include('class_select.php');
// Création de l'objet
$liste = new Select('voitureid');
// On ajoute les choix
$liste->ajouter_choix('Peugeot 306', 'p306');
$liste->ajouter_choix('Peugeot 406', 'p406');
$liste->ajouter_choix('Renault R5', 'r5' , ' style="color:blue;"'); // En bleu
$liste->ajouter_choix('Renault Concept Car 2007', 'concept');
$liste->ajouter_choix('Renault Laguna', 'rlag', ' selected'); // Selectionné au chargement
// Eventuellement en supprimer
$liste->supprimer_choix('concept');
// Ecriture du formulaire
$codepage = '
<form action="' . $PHP_SELF . '">
' . $liste->code_html() . '
<br /><input type="submit" value="Choisir" />
</form>
';
print($codepage);
?><form action="/outils/index.php">
<select name="voitureid">
<option value="p306">Peugeot 306</option>
<option value="p406">Peugeot 406</option>
<option value="r5" style="color:blue;">Renault R5</option>
<option value="rlag" selected>Renault Laguna</option>
</select>
<br /><input type="submit" value="Choisir" />
</form>
Commentaire publié le lundi 02 avril 2007 à 16 h 51 par telnes Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.
Discutez et échangez sur ce thème dans notre forum PHP - SQL.
14/05/2008 à 16 h 21
Police non prise en charge (3 réponses)
11/05/2008 à 22 h 46
question sur fwrite ??? (1 réponse)
11/05/2008 à 05 h 43
Petite aide (0 réponse)
08/05/2008 à 20 h 43
probleme cookie (domain) (2 réponses)
07/05/2008 à 23 h 03
$_session ne fonctionne pas ??? (4 réponses)