Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous, débutant avec Zend Framework je suis confronté à quelques difficultés...
Je vous explique le principe...
J'ai un controller qui contient une action (Ajoutxxx). Cette action transmet mon formulaire à une vue. Pour des raison pratique, l'action de mon formulaire est une autre action de mon controller (ProcessAjoutxxx). Je teste correctement tous mes champs en jquery directement, donc logiquement mes formulaires sont tout le temps valides, sauf bien sur en cas de javascript desactivé. D'où les controle coté serveur via Zend_Form directement.
Dans mon action de Process je test la validité de mes formulaires au cas ou... comme suis :
if (!$form->isValid($_POST)) { CAS 1 $this->_redirector->gotoUrl('/'); => PROBLEME!!! } else { //Récupération des données du formulaire de demande de devis if ($this->_request->isPost()) { } } }
Ce que je ne sais pas faire (je ne connais pas la méthode et je ne trouve rien d'expliquer clairement). C'est, si je suis dans le cas 1, rediriger mes utilisateurs vers ma première page de formulaire avec un message d'erreur... La solution simple serait de passer un flag dans l'url du genre :
$this->_redirector->gotoUrl('/MonController/Ajout/erreur/1');
et tester dans ma vue si je récupère un paramètre erreur... Mais question sécurité c pas top si? je sais pas trop...
Si vous pouviez me renseigner sur ce point, ça serait nikel.
Le problème se pose également une fois que mon formulaire est validé, je voudrait afficher un message de réussite si tout est validé :-)
Je reste entièrement à votre disposition si je n'ai pas été assez clair, en attendant je retourne essayer de trouver une solution potable, le problème c'est que je ne trouve pas de 'norme' à ce sujet.
A tous, merci d'avance car c'est vraiment très important.
Hors ligne
Le plus simple (et de loin) est de faire pointer le formulaire sur la même action. Il suffit de faire alors un $form->populate(), et le tour est joué. Tu as plein d'exemples de tutoriels sur Zend_Form.
Par exemple : http://g-rossolini.developpez.com/tutor … odele#LV-H
Dernière modification par vg33 (20-04-2009 14:55:23)
Hors ligne
Bonjour vg33, et merci pour ta réactivité,
en effet la méthode populate() est très intéressante. Mais elle ne me satisfait pas entièrement au niveau de son utilisation, 5d'ailleurs je l'utilise).
Si j'avais bien compris à l'époque, elle permet de remettre le contenu du formdata dans les bons champs. Nikel ça. Mais je ne peux adapter mon message d'erreur en fonction. En gros je veux passer au dessus du populate pour personnaliser mes messages...
Tu vois le truc?
Aie aie aie, je me doute que je ne suis pas très clair... mais on va réussir
Hors ligne
Hors ligne
Si ton problème est la traduction des messages d'erreur, je te renvoie à la réponse suivante :
http://zend-framework.developpez.com/fa … nslate-err
Hors ligne
Salut Norky, merci pour ta réponse efficace
J'avais déjà bien vu ces messages d'erreur, sauf qu'avec cette méthode. je ne reviens pas sur ma page initiale.
Je reprend,
une action lancant le formulaire et une action intermédiaire qui le traite. Comme je traite le formulaire et que j'initialise les messages d'erreur dans l'action intermédiaire, j'affiche les erreurs dans la vue de cette action... Or ce que je veux c'est afficher les erreurs dans mon action initiale...
J'espère être clair dans mes besoins. Je sens toutefois qu'on touche au but
Merci d'avance à tous ceux qui pourront m'aider encore
Hors ligne
Mais pourquoi ne fais-tu pas pointer ton formulaire sur la même action ? Ce serait beaucoup plus simple.
Hors ligne
C'est sur, Un forumaire est à 98% du temps sur la même en action en "affichage" et "post".
Sinon, flashmessager est un bon helper
Hors ligne