Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous
Le Zend_Form est bien pratique, mais tout les éléments de sont pas valide W3C ! Exemple tout simple (tout est pris dans la doc de zf) :
$form = new Zend_Form; $form->setAction('/resource/process') ->setMethod('post'); $check = new Zend_Form_Element_MultiCheckbox('foo', array( 'multiOptions' => array( 'foo' => 'Foo Option', 'bar' => 'Bar Option', 'baz' => 'Baz Option', 'bat' => 'Bat Option', ))); $check->setValue(array('bar', 'bat')); $check->setLabel('check'); $form->addElements(array($check)); echo $form;
Voila le code Html :
<form enctype="application/x-www-form-urlencoded" action="/resource/process" method="post"><dl class="zend_form"> <dt id="foo-label"><label for="foo" class="optional">check</label></dt> <---- ERROR <dd id="foo-element"> <label for="foo-foo"> <input type="checkbox" name="foo[]" id="foo-foo" value="foo" />Foo Option</label><br /> <label for="foo-bar"><input type="checkbox" name="foo[]" id="foo-bar" value="bar" checked="checked" />Bar Option</label><br /> <label for="foo-baz"><input type="checkbox" name="foo[]" id="foo-baz" value="baz" />Baz Option</label><br /> <label for="foo-bat"><input type="checkbox" name="foo[]" id="foo-bat" value="bat" checked="checked" />Bat Option</label> </dd></dl></form>
Pourquoi c'est pas valide ? Tout simplement que foo n'a pas de référence. Vous allez me dire, mais ce n'est pas un crime !
Mais souhaiterais savoir comment corriger ce problème. Avez-vous un idée ?
Merci beaucoup pour votre aide.
Dernière modification par nicko (12-09-2009 16:31:16)
Hors ligne
Salut à tous,
En lisant la doc de Zend, il y a cette partie (23.5.3. Décorateurs personnalisés) que j'essaye de mettre un place pour corriger ce "bug".
J'ai bien vu que l'on pouvait modifier la description en replaçant les tag pas des div. Mais pour la méthode buildLabel(), comment faire ?
Merci d'avance
Hors ligne
Bon je m'auto pose une question
Lorsque Zend génère une balise <label>, ou arrive t-il à trouver le for="" j'ai cherché dans les décorators, il n'y rien d'écrit en dur ?
Par d'idées.
Hors ligne
J'ai fini par trouver une partie de la solution. Toutes les aides de vues utilisées pour générer les formulaires se trouvent dans zend/view/helper.
Hors ligne
Hello,
Je constate la même chose si j'analyse avec HTML tidy et c'est étonnant qu'il n'y a pas plus de remarques que ça à ce niveau.
Exemple pour les balises "input" il n'y a pas le slash sur la balise de fermeture : <input.... />
Ce n'est pas dramatique en soit mais ça veut dire que par défaut ça ne génère pas du code W3C pour les formulaires. Bon j'imagine que certains ne regardent pas ça...
Mais il faut souligner un truc, si on a la confirmation "OK" pour le W3C, très souvent si on va tester sur un autre navigateur le résultat est identique et on évite de galérer à comprendre pourquoi y a un espacement sous IE etc... (vilain IE
)
Dernière modification par m1b (09-01-2010 23:12:19)
Hors ligne
Pour les histoires de balises fermantes, il faut spécifié le doctype utilisé à la vue.
// in a Zend_View $this->doctype('XHTML1_STRICT');
http://framework.zend.com/manual/en/zend.view.helpers.html#zend.view.helpers.initial.doctype
Hors ligne
Pages: 1