Bonjour à tous,
J'ai un formulaire d'inscription à une newsletter qui se retrouve sur toutes mes pages. Pour ceci, j'ai utilisé une aide de vue dans laquelle je ne fais que retourner la création de mon formulaire, et j'utilise cette aide de vue dans mon layout.
Mon aide de vue :
1 2 3 4 5 6 7 8 9
| <?php
class Zend_View_Helper_NewsletterForm {
public function newsletterForm() {
$f = new Application_Form_Newsletter();
return $f;
}
} |
Et dans mon layout :
<?php echo $this->newsletterForm(); ?>
Problème : comment traiter ce formulaire à présent ?
J'ai essayé de le récupérer dans un controller :
1 2 3 4
| if ($this->getRequest()->isPost() ) {
$formData = $this->getRequest()->getPost();
} |
ça fonctionne, mais je ne peux pas vérifier sa validité, puisque je n'ai pas crée ce formulaire dans ce controller, je ne peux donc pas faire
1 2 3
| if ($f->isValid($formData)) {
//Traitement si valide
} |
Toutefois, même si cela fonctionnait, cela voudrait dire qu'il faudrait que je traite le formulaire sur chacun de mes controller, ce qui ne me semble pas très pratique. Y a t-il une solution ? Je pensais partir vers les aides d'actions, mais je ne sais pas si c'est une bonne solution ?
Question bonus, toujours sur Zend_Form :
J'ai plusieurs formulaires par pages, par exemple un formulaire de connexion et le dit formulaire d'inscription à la newsletter.
Pour traiter uniquement un seul formulaire, et le bon, la seule solution que j'ai trouvée est celles-ci (http://www.developpez.net/forums/d68...mulaires-page/) utiliser getParam() et des noms de submit différents. N'existe-il pas une solution "plus propre" ? Comme récupérer le nom/l'id du formulaire ?
Par avance merci pour votre aide
Partager