Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 02-04-2009 22:22:18

elkolonel
Administrateur
Lieu: Grasse
Date d'inscription: 18-12-2007
Messages: 299
Site web

[Zend_Form] Champ Radio & champ texte imbriqués

Hello tout le monde,

Je cherche à me créer un composant me permettant de générer un bloc d'élément de formulaire que je pourrais réutiliser par la suite dans d'autres formulaires.
Je cherche donc la meilleure façon de réaliser la chose suivante :

[le formulaire complet à commencer avant ...]
/-----------------------------------------------------------------------------------------------------------\
|   [bouton radio 1]                             [select              \/]                                                        |
|                                                              | option 1     |                                                         |
|                                                              | option 2     |                                                         |
|                                                              | option 3     |                                                         |
|                                                              |__________|                                                         |
|                                                                                                                                           |
|   [bouton radio 2]                             [champ texte 1][img]   [champ texte 2][img]                  |
|                                                                                                                                           |
\-----------------------------------------------------------------------------------------------------------/
[le formulaire complet continue après ...]

Au niveau du comportement, je souhaite que
- le bouton radio 1 soit sélectionné par défaut
- le champ select soit actif
- que les éléments champ texte 1 & 2 soient grisés
- lors du choix du bouton radio 2, le champ select associé au bouton radio 1 devienne grisé et que les champ texte 1 & 2 soient activés

J'aimerai avoir votre retour sur la meilleure façon de coder cela via le Zend Framework (via le Zend_Form), en bénéficiant de la puissance de Zend_Form, à savoir :
- les decorators
- les validateurs
- les filters
- la fonction populate

De pouvoir associer du javascript à ce composant, notamment pour activer/désactiver les différents champs en fonction des clics dans les boutons radio et pouvoir associer au deux champs texte un datePicker via ZendX_Jquery (affichage du calendrier lors du clic sur [img] .

Attention, je sais comment le faire en HTML pur, mon but ici est vraiment de créer un composant réutilisable, qu'il soit complètement découplé du reste de l'application.

J'espère que j'ai été clair, de mon côté je continue de chercher la meilleure façon pour le faire et n'hésiterai pas à vous faire des retours de mes éventuelles trouvailles. Mais je ne vous cache pas que si vous avez déjà de près ou de loin, réfléchi à la question, votre feedback me fera sans doute économiser du temps et un bon mal de tête big_smile.

Bien cordialement,

Hors ligne

 

#2 06-04-2009 10:23:14

elkolonel
Administrateur
Lieu: Grasse
Date d'inscription: 18-12-2007
Messages: 299
Site web

Re: [Zend_Form] Champ Radio & champ texte imbriqués

Personne n'a d'idées ?
Ferais je fausse route ? wink

Hors ligne

 

#3 07-04-2009 13:13:06

elkolonel
Administrateur
Lieu: Grasse
Date d'inscription: 18-12-2007
Messages: 299
Site web

Re: [Zend_Form] Champ Radio & champ texte imbriqués

Je m'auto-motive et vous indique ce que je compte faire. Sans doute n'est ce pas la meilleure façon, si vous avez des suggestions n'hésitez pas. Alors :

Je pense faire comme suit, mais je ne suis pas sur de la voie à suivre :
- créer un MaLibrairie_Form_Element_RadioElement (à chaque 'radio' on peut lui associer un autre élément de formulaire : Zend_Form_Element_*)
- créer MaLibrairie_View_Helper_FormRadioElement afin de définir correctement l'affichage de mes éléments.

Je dois également rajouter une couche de javascript pour activer les Zend_Form_Element associé au bouton radio activé.

L'idée étant de pouvoir à terme faire ceci :

Code:

        // Create sub form
        $sForm = new Zend_Form_SubForm('test', array('disableLoadDefaultDecorators' => true));
        
        
        // text field 1 generate
        $this->_dateText1 = new Zend_Form_Element_Text('dateText1');
        
        // radio form generate
        $data = array(
            '1'=>array(
                'name'=>'toto',
                'associatedElement'=>$this->_dateText1)
        );
         
        $this->_radio1 = new MaLibrairie_Form_Element_Radiotext('radio');
        $this->_radio1->setMultiOptions($data);
        
        $sForm->addElements(array($this->_radio1,$this->_dateText1));

Le but de plus haut niveau étant d'avoir des éléments de formulaires répondant à des problématiques métiers précises et pouvant ensuite être assemblés 'comme des légos' pour construire des formulaire plus conséquent.

PS : Je précise, car j'entends déjà les cris au loin, que je n'ai volontairement pour le moment ajouter aucun validators et/ou filters big_smile

Ce que j'aimerai savoir c'est est ce que je suis parti dans le bon sens ??

Merci aux experts Zend_Form... wink

Hors ligne

 

#4 08-04-2009 13:43:46

keilnoth
Membre
Date d'inscription: 30-08-2008
Messages: 128
Site web

Re: [Zend_Form] Champ Radio & champ texte imbriqués

Salut,

J'ai vaguement survolé ton problème. Je suppose que tu as vraiment besoin de cet élément car si c'est pour un site unique je le ferai manuellement avec un viewScript spécifique. tongue

En fait, je vois bien ça comme une sorte de subform ou groupe pour lequel chaque élément a un radio bouton associé. Il n'y a pas réellement de contrôle sur le radio bouton vu que par défaut, il y en a un de sélectionné. Je ne suis donc pas sûr que ce soit utile de créer un Form_Element pour ces boutons radio.

A voir si on peut définir des décorateurs ou un viewScript spécifique pour un subform.

Ensuite, il est clair que la méthode isValid() du formulaire ainsi créé doit être adaptée afin de contrôler uniquement le champ sélectionné avec le bouton radio.

Mais je ne suis pas du tout un expert du Zend_Form. J'ai vaguement appréhendé les décorateurs et les méthodes de base. C'est à peu près tout. tongue


Quelques tutoriaux Zend Framework !

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