Par Nicolas SUPRIN, mardi 13 février 2007 à 16:26 | PHP | #85 | rss
Et oui, même ces braves formulaires HTML_QuickForm se rebellent !
Mise en situation
Il arrive parfois qu'un formulaire HTML_QuickForm refuse de se soumettre.
J'entends par la, d'etre validé lors du submit ($O_form->validate()).
Pistes de débugage
1 - Champ caché
Si ce formulaire utilise un template, penser à vérifier que le champ caché est présent (<input name="_qf__{formName}" type="hidden" value="" />)
2 - Règles de validation
Parfois, il peut arriver qu'une règle de validation se cache à notre insu, et qu'aucun message ne s'affiche. Ce qui entraine un figeage incompréhensible de la validation.
Une astuce, une fois le $form->validate() effectué, est d'afficher le contenu de $form->_errors
Exemple :
if ($form->validate()) { // traitement } var_dump(form->_errors);
Cette variable est un tableau contenant la liste des éléments violant une règle de validation, avec le message d'erreur associé. Et grâce à ses informations, on peut découvrir les coupables :
array(2) {
["monElement"]=>
string(11) "Obligatoire"
["monAutreElement"]=>
string(11) "Obligatoire"
}
En général, il s'agit d'un oubli de l'élement dans le template...
Enfin quoi qu'il en soit, c'est pratique de connaitre cette liste des erreurs de validation :)





Aucun commentaire pour le moment.
Aucun trackback.
Pour faire un trackback sur ce billet : http://www.blog.cactuscrew.com/tb.php?id=85&chk=jrbtfg