Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
A cause de la sortie récente du Zend_Form je trouve très peu d'exemples sur l'utilisation des validateurs avec ce composant. J'aimerais pouvoir valider les champs de mon formulaire à la soumission et cela grâce aux addValidator que j'ai posé sur ses éléments. Mais je n'arrive pas à voir vraiment comment utiliser ces validateurs.
D'après ce que je peux comprendre, il y a deux types de validation possible:
- faire ça en AJAX directement sur le formulaire avant l'envoi de ce dernier, mais il faudra passer de toute manière après l'envoi des $_POST pour vérifier car on peut pas faire confiance aveuglément à l'utilisateur.
- faire ça après l'envoi de ce dernier, mais je ne vois pas comment transmettre mon formulaire $form
Avez-vous déjà utilisé les validateurs pour vos formulaires? Si vous aviez un petit exemple ou une explication, je vous en serais très reconnaissant
Merci d'avance
Aqua
Dernière modification par Aquanum (29-02-2008 11:27:19)
Hors ligne
Tu as lu ce nouveau tutorials sur les Zend_Form : http://akrabat.com/2008/02/21/simple-zend_form-example/
notre bienfaiteur anglais Rob Allen?
Dernière modification par whitespirit (27-02-2008 13:56:11)
Hors ligne
Oh non, je ne connaissais pas. Je vais lire ça.
Merci beaucoup!
Hors ligne
Héhé c'est super ça marche super! merci beaucoup pour le lien.
Je viens donc d'apprendre que la chose importante à faire c'est de déclarer le formulaire dans une classe perso, et je ne l'avais pas fait. Si le Form n'est pas déclaré en classe on ne peut pas utiliser la validation, et je ne le savais pas Moi je posais directement mon formulaire dans mon controller au lieu d'instancier une classe .
Bonne journée
Hors ligne
ouip :]
Hors ligne
Bon je réouvre mon topic, car depuis hier je n'arrive pas à faire ce que je veux...
J'ai réussi à utiliser le code du tutorial pour avoir le formulaire affiché. A la soumission du formulaire, la validation est effectuée et les champs non valides sont accompagné d'un petit texte d'erreur:
C'est exactement ce que je veux!
Sauf que j'ai mon propre Zend_View pour afficher le tout comme je veux.
Ainsi au lieu de faire comme dans le tuto un
$this->view->form = $form;
je fais
$formView = new Zend_View(); $formView->title="Inscription"; $formView->baseUrl = $this->_request->getBaseUrl(); $formView->form = $form; $formView->setScriptPath("./application/views/scripts/form/"); $this->view->title = "Inscription à une activité"; $this->view->formView = $formView->render("formView.phtml"); $this->view->render('activite/inscrire.phtml');
Avec ma mise en page dans formView.phtml qui pose en gros la structure du formulaire que je veux, et pour chaque élément du formulaire je fais un switch qui va appeler formTextarea, formSelect, formHidden, formRadio, etc. entourrés de la mise en page que je veux.
Le problème, c'est qu'en passant par ma propre mise en page je zappe le système par défaut, et les validateurs ne fonctionnent plus... j'ai cherché toute la journée hier où se cachait la génération des messages d'erreurs et comment ça fonctionnait... mais je n'ai rien trouvé...
Sauriez-vous comment garder le système de validation qui marche super sur le tuto, mais avec un Zend_View perso?
J'ai essayé dans mon formView.phtml un truc du genre:
if (...->_request->isPost()) { // on fait une validation sur le contenu du champ et on affiche ou pas le message d'erreur }
Mais je n'arrive pas à porter le $this du controller dans mon formView, et de toute manière ça ne me semble pas être une bonne idée.
bref j'appelle à l'aide, car c'est encore un truc que j'ai du mal à piger là. j'ai épluché le code de Zend mais je n'arrive pas à trouver, y a bcp de code >_<
Merci beaucoup d'avance
Hors ligne
As tu regardé du côté des décorateurs et des sous groupes de formulaires (displayGroup)?
Car je trouve ça un peu dommage de se privé du rendu de Zend_Form, dans ce cas là, autant ne pas utilisé en utilisant simplment les Zend_Form_Element et les validateurs.
Hors ligne
J'utilise actuellement displayGroup pour diviser mon formulaire en fieldset. J'utilise mon formView pour les mettre en page. Pour les décorators je sais pas trop quelle est la différence avec l'utilisation des Zend_View... parce que d'après la doc Zend, je comprends qu'il faut poser la mise en forme des éléments à chaque fois. Donc je trouve ça super lourd de spécifier comment sera mis en forme chaque champ alors que le Zend_View permet d'avoir ça centralisé.
Donc pour le coup je ne sais vraiment pas comment faire
Et je suis complètement bloqué dans mon boulot là... je m'en arrache les cheveux
Hors ligne