Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bien le bonjour,
Cela fait plusieurs jours que je tourne en rond sur le net pour essayer de résoudre mon problème et comprendre les décorateurs.
je cherche à faire ceci :
<form> <table> <tr> <td><input type="checkbox"/>label_checkbox</td> <td><input type="checkbox" />label_checkbox</td> <td><input type="checkbox"/>label_checkbox</td> <td><input type="checkbox"/>label_checkbox</td> </tr> <tr> <td><input type="checkbox"/>label_checkbox</td> <td><input type="checkbox"/>label_checkbox</td> <td><input type="checkbox"/>label_checkbox</td> <td><input type="checkbox"/>label_checkbox</td> </tr> <tr> <td><input type="checkbox"/>label_checkbox</td> <td><input type="checkbox"/>label_checkbox</td> <td><input type="checkbox"/>label_checkbox</td> <td><input type="checkbox"/>label_checkbox</td> </tr> <tr> <td><input type="checkbox"/>label_checkbox</td> <td><input type="checkbox"/>label_checkbox</td> <td><input type="checkbox"/>label_checkbox</td> <td><input type="checkbox"/>label_checkbox</td> </tr> <tr> <td><input type="checkbox"/>label_checkbox</td> <td><input type="checkbox"/>label_checkbox</td> <td><input type="checkbox"/>label_checkbox</td> </tr> <tr> <td><input type="file"/></td> </tr> <tr> <td><input type="submit" name="envoie" class="file_button" value="upload"/></td> </tr> </table> </form>
Je vous met la class de mon formulaire
<?php class Form_Video_Upload extends Zend_Form { public function __construct($categoryList) { parent::__construct($options = null); $this->setName('Upload_Video'); $this->setAttrib('enctype', 'multipart/form-data'); $category = new Zend_Form_Element_MultiCheckbox('category_video'); $category->setLabel('Select your category') ->addMultiOptions($categoryList) ->addValidator('NotEmpty'); $video = new Zend_Form_Element_File('file_video'); $video->setLabel('File') ->setDestination(APPLICATION_PATH . '/videos/temp') ->setRequired(true); $submit = new Zend_Form_Element_Submit('submit'); $submit->setLabel('Upload'); $this->addElements(array($category, $video, $submit)); } }
Je suis bien arrivé à mettre un décorateur sur le formulaire, en insérant ceci dans la class du formulaire
$this->setDecorators(array( 'FormElements', array('HtmlTag', array('tag' => 'table', 'class'=>'tableau')), 'Form', ));
A partir de là, je tourne en rond Est ce que quelqu'un pourrait me donner une piste à suivre svp?
Merci d'avance et toutes aides sont les bienvenues
Dernière modification par cyberface (16-01-2010 23:56:58)
Hors ligne
Hello, maintenant que tu as défini les décorateurs pour ton formulaire, il faut que tu définisses les décorateurs des éléments de ce formulaire.
Par exemple :
class Form_Default extends Zend_Form { public function init() { $email = new Zend_Form_Element_Text('id_email'); $email->setLabel('Email Address :') ->addFilters(array('StripTags', 'StringTrim', 'StringToLower')) ->setRequired(true) ->addValidators(array('notEmpty', 'emailAddress')) ->setDecorators(array( 'ViewHelper', array('Label', array('class' => 'inputLabel')), array('Errors', array('class' => 'error')), array('HtmlTag', array('tag' => 'div', 'class' => 'formItem')) )); } }
Par contre il me semble que pour le multi-checkbox c'est particulier (il me semble que par défaut toutes les checkbox sont inclus dans entre les balises des labels respectifs qui sont listés les uns derrières les autres : <label for="#opt1"><input type="checkbox"/>label_checkbox#opt1</label>... ).
Si l'anglais n'est pas un soucis, voici un un billet de la Zend Devzone qui m'as beaucoup aidé : http://devzone.zend.com/article/3450
Hors ligne
Merci pour le lien, je vais aller voir ton lien! Merci
Hors ligne
Pages: 1