Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour a tous,
Je suis un junior dans Zend Framwork est actuellement j'essais de faire un formulaire avec un tableau html .
J’arrive à afficher un tableau, mais je ne maitrise pas bien le decorators de Zend donc je demande de l'aide…
Voici mon code Form_Zend ajouter.php
<?php class index_Ajouter extends Zend_Form { public $elementDecorators = array( 'ViewHelper', 'Errors', array('Description', array('tag' => 'p', 'class' => 'description')), array('HtmlTag', array('tag' => 'td')), array('Label', array('tag' => 'td')), array(array('tr' => 'HtmlTag'), array('tag' => 'tr')) ); public $elementDecorators2 = array( 'ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element')), array('Label', array('tag' => 'td'), array(array('row' => 'HtmlTag'), array('tag' => 'tr')), )); public function init() { $username = $this->addElement('textarea', 'lib_assitant', array( 'label' => 'message', 'rows' => 5, 'cols' => 50, 'decorators' => $this->elementDecorators, 'required' => true, )); $annee_param = $this->addElement('text', 'annee_param', array( 'label' => 'Annee', 'decorators' => $this->elementDecorators, 'required' => true )); $prix_param = $this->addElement('text', 'prix_param', array( 'label' => 'Prix', 'decorators' => $this->elementDecorators2, 'required' => true )); $charge = $this->addElement('text', 'charge', array( 'label' => 'Charge', 'decorators' => $this->elementDecorators, 'required' => true )); $num_fiche = $this->addElement('text', 'num_fiche', array( 'label' => 'Num fiche', 'decorators' => $this->elementDecorators2, 'required' => true )); $aa = $this->addElement('text', 'aa', array( 'label' => 'aas', 'decorators' => $this->elementDecorators, 'required' => true )); $login = $this->addElement('submit', 'login', array( 'decorators' => array( 'ViewHelper', array(array('td' => 'HtmlTag'), array('tag' => 'td', 'colspan' => 2)), array(array('tr' => 'HtmlTag'), array('tag' => 'tr')) ), 'required' => false, 'ignore' => true, 'label' => 'Login', )); $this->setDecorators( array( 'FormElements', array('HtmlTag', array('tag' => 'table', 'cellpadding' => 5, 'border' => 1)), 'Form' ) ); } }
Et voici ce que je veut que donne en html
<table width="200" border="1"> <tr> <td>message</td> <td><textarea cols="5" name="lib_assitant"> </textarea></td> </tr> <tr> <td>Annee</td> <td><input type="text" name="annee_param" value="" /></td> <td>Prix</td> <td><input type="text" name="prix_param" value="" /></td> </tr> <tr> <td>charge</td> <td><input type="text" name="charge" value="" /></td> <td>Num fiche</td> <td><input type="text" name="num_fiche" value="" /></td> </tr> <tr> <td><input type="submit" value="submit" name="submit" /> </table>
J'arrive à les aligner verticalement mais le faire comme le fichier html je n'y arrive pas
HELP
Dernière modification par titimoun (16-03-2010 11:48:38)
Hors ligne
Bonjour, il y a plusieurs erreurs dans votre code. Dans $username label est défini deux fois, et dans le premier décorateur Description est inutile ici si vous ne la définissez pas dans les éléments. Vous pouvez par contre utiliser Description et Label au lieu des deux labels dans $username.
Sinon le code me semble assez proche du but, je pense qu'une (re)lecture de cet article vous aidera :
http://devzone.zend.com/article/3450
Hors ligne
Hors ligne
Et bien c'est quoi le problème ? c'est un tableau que l'on voit la, non ?
Hors ligne
Hors ligne
Effectivement, c'est un point qui n'est pas indiqué dans l'article. Pour cela il faut utiliser:
array(array('row'=>'HtmlTag'),array('tag'=>'tr','openOnly'=>'true'))
pour le décorateur de gauche et
array(array('row'=>'HtmlTag'),array('tag'=>'tr','closeOnly'=>'true'))
dans celui de droite.
Dernière modification par Zartan (15-03-2010 19:43:58)
Hors ligne
Merci beaucoup sa fonctionne mieux
Hors ligne
Pages: 1