Fork me on GitHub

Rapport de message :*
 

Re: Créer champs saisie liste deroulante avec options definies dans Admin

Titre du sujet : Re: Créer champs saisie liste deroulante avec options definies dans Admin
par JJDai sur 06/09/2009 23:53:58

Oui mais côté client, lorsque l'utilisateur va choisir un élément dans la liste, tu vas enregistrer cet info ou l'utiliser pour autre chose. Hors tu as deux possibilité utiliser la valeur elle même ou son identifiant, cela dépent notamment du type de champs de la destination.

ex, je propose une liste de couleur pour le fond du site:
Bleu,jaune,rouge,pistache,violet

L'utilisateur chois pistache (c'est ma glace préférée !!!)

tu peu récupérer la valeur "pistache" ou l'id dans ces ce sera 3 (le premier étant le 0.

Selon la cas la liste ne construit légèrement différemment.

tu peux t'inspirer de la fonction suivante:
Citation :
/***************************************************************************
*
***************************************************************************/
function buildHtmlListString ($name, $list, $defaut = '',
$addBlanck = false,
$onChange = '',
$sep = ";"){
if (!is_array($list)){
$list = explode($sep, $list);
}else{

}

//echo "<hr>buildHtmlListString<br>{$onChange}<hr>";
$tselected = array();

if ($onChange <> ''){$oc = "onchange='{$onChange}'" ;}else{$oc='';}
$tselected [] = "<SELECT NAME='{$name}' {$oc}>";
if ($addBlanck){
$tselected [] = "<OPTION VALUE='' >";
}


for ($h = 0; $h < count($list); $h++){
$item = $list[$h];

if ($defaut == $item ) { $itemSelected = " selected";} else {$itemSelected = "";}

$tselected [] = "<OPTION VALUE='{$item}' {$itemSelected}>{$list[$h]}";
}
$tselected [] = "</SELECT>";

$obList = implode ("", $tselected);
return $obList;
}




Attention ne garde pas ce nom (buildHtmlListString ) sinon tu rentrerais en conflit avec un de mes modules si tu les utilises.

Les paramètre de cette fonction :

$name : le nom de la liste, celui retourner par le form lors de la validation du formulaire

$list : la liste de valeur avec un séparateur ";" par défaut. Tu peux passer aussi un tableau si tu préfère.

$defaut : la valeur par défaut la liste, probablement le choix effectuer lors de la dernière validation

$addBlanck : (troue ou fals) permet d'ajouter une valeur vide en premier selon les besoins.


$onChange : appel d'une fonction javascript quand on clique sur la liste déroulante, Doit avoir la valer de la balise html "onchange" (ex: "fonctionJavascript(param1,param2);"


$sep (par defaut ";") Separateur des item de la liste, lrs de l'appel a la fonction tu peux passer un pipe.


exemple d'appel à la fonction


$liste = buildHtmlListString ("lstChoix", "Bleu|Rouge|Vert|Pistache|Violet", 'Pistache', false, '',"|");

Echo $liste // ou assign("balise", $liste) pour smarty

J'espère être assez clair ?
JJDAI
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

48 Personne(s) en ligne (39 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 48 | Plus ...