Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 04-11-2008 15:47:11

fredouille312
Membre
Date d'inscription: 04-11-2008
Messages: 35

[Résolu]Zend_Form dans un tableau avec des décorateurs

Bonjour à tous,
pour mon premier message, j'aurais besoin d'aide avec mon formulaire. J'essaye de faire un exemple basic de formulaire (un bouton et un élément texte) dans un tableau à l'exception que j'aimerais afficher ces deux éléments sur une même ligne mais dans 2 colonnes.

Ce qui devrait donner en HTML :

<tbody>
   <form method="post" action="" enctype="application/x-www-form-urlencoded"/>
      <tr>
        <td>
           <input id="tb1" type="text" value="" name="tb1"/>
        </td>
        <td>
           <button id="bt1" value="bt1" type="button" name="bt1">bt1</button>
        </td>       
       </tr>

Mais j'arrive uniquement à les afficher l'un en dessous de l'autre :

<tbody>
   <form method="post" action="" enctype="application/x-www-form-urlencoded"/>
      <tr>
        <td>
           <input id="tb1" type="text" value="" name="tb1"/>
        </td>
      </tr>
      <tr>
         <td>
           <button id="bt1" value="bt1" type="button" name="bt1">bt1</button>
        </td>       
      </tr>

Je fais ça avec un décorateur :

$boutonElement->setDecorators(array(
                'ViewHelper',
    'Errors',
    array(array('data' => 'HtmlTag'), array('tag' => 'td'))
));
$boutonElement->removeDecorator('Label');
$textElement->setDecorators(array(
                'ViewHelper',
    'Errors',
    array(array('data' => 'HtmlTag'), array('tag' => 'td')),
    array(array('row' => 'HtmlTag'), array('tag' => 'tr'))
));

Voilà mon problème, alors si vous avez une solution, c'est avec grand plaisir merci d'avance.


P.S. Je ne veux pas mettre un bouton "submit" mais bien un bouton "standard"

Dernière modification par fredouille312 (04-11-2008 22:58:42)

Hors ligne

 

#2 04-11-2008 16:20:54

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Résolu]Zend_Form dans un tableau avec des décorateurs

Ton decorateur htmltag pour les tr n'est pas a placer dans les élements mais dans les décorateurs du formulaire.

Quelque chose comme c a:

Code:

$form->setDecorators(array(
  'formElments'
  array('HtmlTag', array('tag' => 'tr'))
  'Form',
));

----
Gruiiik !

Hors ligne

 

#3 04-11-2008 16:40:20

fredouille312
Membre
Date d'inscription: 04-11-2008
Messages: 35

Re: [Résolu]Zend_Form dans un tableau avec des décorateurs

Salut nORKy,
effectivement je vois la différence merci. Mais je bloque encore sur un point. J'ai voulu rajouter une deuxième ligne (composer à nouveau d'un élément texte et d'un bouton) et ça ne fonctionne pas.

Voilà ce qu'il m'affiche :

<tr>
        <td>
           <input id="tb1" type="text" value="" name="tb1"/>
        </td>
        <td>
           <button id="bt1" value="bt1" type="button" name="bt1">bt1</button>
        </td>       
        <td>
           <input id="tb2" type="text" value="" name="tb2"/>
        </td>
        <td>
           <button id="bt2" value="bt2" type="button" name="bt2">bt2</button>
        </td>
</tr>

Je pense qu'il faut modifier le décorateur du bouton mais je vois pas comment.

Hors ligne

 

#4 04-11-2008 17:12:45

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Résolu]Zend_Form dans un tableau avec des décorateurs

Ah, dans ce cas, il faut voir les choses autrement.

Par exemple, tu peux utiliser un displaygroup, et faire en sorte que ce displaygroup utilise htmltag 'tr' à la place du fieldset.
Tu mets chaque Text + son button dans un displaygroup

Ou alors, faire ton propre décorateur smile

Je croise que tu n'arrives pas encore à visualiser le fonctionnement des décorateurs.
C'est comme les poupée russe, chacun englobe celui du dessous.


----
Gruiiik !

Hors ligne

 

#5 04-11-2008 17:39:14

fredouille312
Membre
Date d'inscription: 04-11-2008
Messages: 35

Re: [Résolu]Zend_Form dans un tableau avec des décorateurs

Ok je vais voir du côté des displayGroup. Par contre, j'ai eut de la peine à trouver de la doc sur les décorateurs donc si tu as de bonnes adresses (autre que le manuel) ou exemples pour créer un décorateur je suis preneur.
(Tu auras compris que je débute avec le z-f et particulièrement avec les décorateurs).

Hors ligne

 

#6 04-11-2008 22:57:04

fredouille312
Membre
Date d'inscription: 04-11-2008
Messages: 35

Re: [Résolu]Zend_Form dans un tableau avec des décorateurs

Voilà j'ai trouvé une solution qui me convient. Le décorateur du premier élément doit comporter :

Code:

array(array('row'=>'HtmlTag'),array('tag'=>'tr', 'openOnly'=>true))

le décorateur du dernier élément doit comporter :

Code:

array(array('row'=>'HtmlTag'),array('tag'=>'tr', 'closeOnly'=>true))

pour le décorateur du formulaire :

Code:

array('HtmlTag', array('tag' => 'table')),

Hors ligne

 

#7 05-11-2008 13:40:19

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Résolu]Zend_Form dans un tableau avec des décorateurs

Tout est bien qui fini bien alors smile

Par contre, faut que moi aussi je revois ma doc, car je ne savais pas qu'il y avait des propriété 'row' et 'closeOnly'..


----
Gruiiik !

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