Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 15-08-2010 14:29:57

ggouhier
Membre
Date d'inscription: 21-05-2010
Messages: 23

Zend_Form - Select tableau

Bonjour,

Je souhaite afficher plusieurs select et leurs valeur valeurs doivent être contenu dans un tableau.

Code:

<select name="test[]"></select>
<select name="test[]"></select>

En procédant de cette façon je vais obtenir un tableau test avec 2 entrées qui ont pour valeurs celle des 2 select.

Je souhaite faire ca avec l'élément select de zend_form.
Lorsque je déclare l'élément de la façon ci-dessous, les crochet sont effacé du name de chaque select.

Code:

$select = new Zend_Form_Element_Select("test[]");
        echo $select;

Ca affiche ceci :

Code:

<select name="test"></select>

J'ai regarder dans la doc API du zend framework et j'ai trouvé par miracle l'attribut ($_isArray) qui permet de dire si le select représente un tableau.

Code:

$select = new Zend_Form_Element_Select("test");
        $select->setIsArray(true);
        echo $select;

Cette fois ci, ca fonctionne mais problème c'est que l'attribut multiple est attérit dans ma balise select...

Code:

<select multiple="multiple" id="native" name="test[]"></select>

Comment je peux retirer cette attribut?

Hors ligne

 

#2 15-08-2010 20:43:53

omega2
Membre
Lieu: Boisbriand, quebec, canada
Date d'inscription: 01-04-2009
Messages: 85
Site web

Re: Zend_Form - Select tableau

Une solution, surement pas la meilleure, c'est de faire un helper de vue dérivé de Zend_View_Helper_FormSelect et dont la fonction "formSelect" ne contient pas le code d'affichage de l'attribut "multiple". Solution inutilisable telle quelle si on veut des select avec sélection multiple et d'autres sans.

Autre solution, surement plus propre, faire une classe dérivé de Zend_Form_Element_Select dont la fonction "filterName" appelle la fonction filterName parente avec le second paramètre égal à "true". Le problème c'est que vu le code de "Zend_View_Helper_FormSelect" l'attribut "multiple" dépend uniquement des crochets. Il faudrait donc l'adapter pour ne pas l'afficher si on a les crochets mais que "isArray" est égal à "false".

Dernière modification par omega2 (15-08-2010 20:49:21)

Hors ligne

 

#3 16-08-2010 13:51:17

ggouhier
Membre
Date d'inscription: 21-05-2010
Messages: 23

Re: Zend_Form - Select tableau

Merci pour ton aide omega2, j'ai finis par trouver une solution, je sais pas si elle est très propre mais elle est rapide à réaliser.

J'ai juste ajouter la méthode suivante à mon select :

Code:

$select->setAttrib("multiple", "");

L'attribut multiple a bien disparut, et je me suis pas trop cassé la tête :p

Merci encore :p

Hors ligne

 

#4 17-08-2010 21:45:53

omega2
Membre
Lieu: Boisbriand, quebec, canada
Date d'inscription: 01-04-2009
Messages: 85
Site web

Re: Zend_Form - Select tableau

Ha tiens je la connaissais pas cette solution. Merci de l'avoir écrite sur le forum, c'est effectivement plus simple.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages