Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
J'ai eu du mal a donné un titre à mon post, alors je vous explique le problème en détail :
Toujours en galère avec les décorateurs et les form, je cherche à faire la chose suivante :
sur la même ligne :
<mon Label> <Mon input> <mon Texte>
Pour <mon Texte> j'utilise la description.
Avec le code qui suit, j'arrive à tout mettre sur la même ligne, et je me demande donc si il était possible de WRAPPER tout mon bordel, de sorte à avoir :
<ma BALISE><mon Label> <Mon input> <mon Texte> </ma BALISE>
Ainsi la mise en forme souhaitée se ferait correctement.
Voici mon code (des commentaires sont utiles à la compréhension) :
//creation du champ icone, et affectation des données $icone=new Zend_Form_Element_Select('icone'); $icone->addMultiOptions($this->exploreDossier())//exploreDossier() renvoie un tableau de string //Décorateur : $elementDecorators = array(array('ViewHelper'), array('Errors'), array('decorator'=>array('input'=>'HtmlTag'),'options'=>array('tag'=>'span ','class'=>'inputform')), array('label',array('tag' => 'span','class'=>'labelform')), array('decorator'=>array('ligne'=>'HtmlTag'),'options'=>array('tag'=>'span','class'=>'ligneform'))); //à l'origine j'avais :'options'=>array('tag'=>'div','class'=>'ligneform') //div à la place du span //seulement, la description allait alors à la ligne.....j'aimerais qu'il soit juste après l'input, d'où //l'idée de "wrapper" le tout
petit précision, d'après ce que j'ai compris (je viens de faire des tests)
a chaque fois qu'on met un décorateur 'decorator' on englobe label+ input + ce qui englobe deja label+input.
Moi je voudrais en fait un décorateur qui englobe : label+input+description.....
Merci par avance pour vos précisions/aide.
Par avance merci.
Dernière modification par gostbuster (27-04-2009 14:13:10)
Hors ligne
Je vois que personne ne répond, donc personne ne sait...Il n'y a pas de spécialiste de Zend_Form et ses décorateurs ?
Merci
Hors ligne
Bon vu que personne ne répond, je me pose la question suivante :
dans des cas comme celui ci, si vous n'arrivez pas à rendre un formulaire comme vous le souhaitez lorsque vous faites echo $this->form, il vous faut alors afficher les elements du formulaire un par un du genre :
echo $this->form->getElement('monInput');
et comment faites vous pour generer les balises form (et y mettre les elements a l'interieur, de sort a avoir :
<form .........> <input ....../> .... </form>
merci.
Hors ligne
Pour ma part j'ai toujours une classe perso pour mes décorateurs comme ça je n'ai pas de problème.
Sinon tu appelles chaque élément un par un, du style
echo $this->form->monInput;
puis tu retires les labels et description de ton formulaire et les rentres directement en dur dans ta vue. Tu me suis ?
Dernière modification par Djules (27-04-2009 19:05:04)
Hors ligne
Oui absolument, je te suis, mais par contre comment tu fais pour générer les entete html <form> ?(plutot que de les écrire en dur....).
merci
Hors ligne
Je crois qu'il y a la méthode $this->form->renderHtmlTag() mais j'ignore comment elle fonctionne.
Je met directement la balise <form> ainsi dans ma vue :
<form action="<?php echo $this->escape($this->form->getAction()); ?>" method="<?php echo $this->escape($this->form->getMethod()); ?>"> ..... </form>
Dernière modification par Djules (28-04-2009 16:01:22)
Hors ligne
Bonjour,
tes informations confirment mes idées.
Je te remercie.
Par contre je suis surpris que ZF ne propose pas des fonctionnalités comme celles-ci......c'est décidement pas le top encore....(même si c'est déjà trés bien...)
Hors ligne
gostbuster a écrit:
Oui absolument, je te suis, mais par contre comment tu fais pour générer les entete html <form> ?(plutot que de les écrire en dur....).
echo $this->form->renderForm(false);
Hors ligne
Pages: 1