Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Ben ouai...une question de plus sur le sujet. ZF c'est tout nouveau pour moi alors ma question reste basique.
Je crée une sous-classe de Zend_Form qui est rangée dans application/forms et qui a le code suivant
class TacheForm extends Zend_Form { public function __construc($options = null) { parent::__construct($options); $this->setName('tache'); $this->setAction('cible'); $nom_tache = new Zend_Form_Element_Text('nom_tache'); $descrip_tache = new Zend_Form_Element_Textarea('descrip_tache'); $submit = new Zend_Form_Element_Submit('submit'); $this->addElements(array($nom_tache, $descrip_tache, $submit)); } }
Un objet de cette sous-classe est instanciée dans un contrôleur avec un code tout bête
$form = new TacheForm(); $this -> view -> form = $form;
et enfin la vue fait un echo de sa variable $form.
Mon problème est que le formulaire qui est inséré ne contient aucun des champs que je déclare. Je sais que mon objet est bien instancié est que le constructeur est invoqué, j'ai fait des tests dans ce sens mais le fait est que le formulaire n'est pas construit.
Dernière modification par Yann_du_sud (12-09-2008 14:16:49)
Hors ligne
Surement un problème de décorateur.
Vu que je ne procède pas vraiment de la même manière, je ne peux pas t'aider.
Normalement, si tu ne touches pas aux décorateurs, Zend_Form devrait les placer pour toi...
Hors ligne
je sais pas encore ce que sont ces visiblement fameux décorateurs. Par contre je vois bien dans le source de ma page html que même la cible du formulaire n'est pas positionnée
<form enctype="application/x-www-form-urlencoded" action="" method="post">
Pourtant je fais bien appel à $this->setAction('cible');
Dernière modification par Yann_du_sud (12-09-2008 10:54:16)
Hors ligne
ah, donc, tu as une balises form qui apparait ?
Bizarre...
je ne sais pas trop ou il faut cherché... Tu es sur de ton code ? les affections sont correctes (tu travailles sur les bon objets) ?
Hors ligne
Je suis à peu près sûr que l'objet est bien instancié oui. J'ai testé en ajoutant une méthode à la classe TacheForm qui affecte juste une valeur à un attribut et l'affichage de cet attribut dans la vue après appel de la méthode fonctionne correctement.
J'ai bien une balise form qui apparait, ce qui m'étonne c'est que son attribut action ne soit pas positionné. Après, pour les éléments j'ai cru voir, même si je ne comprend pas pour l'instant pourquoi, que beaucoup d'exemples utilisent des require_once pour inclure des fichiers.
Je vais craquer...
Hors ligne
Tu devrais reprender à 0 en repartant d'exemple qui fonctionne.
T'as forcément oublié ou modifier un truc qu'il ne faut pas...
Hors ligne
Tu as bien raison car je viens de copier cet exemple http://akrabat.com/2008/02/21/simple-zend_form-example/ qui est exactement similaire au mien en apparence et qui fonctionne...
Merci pour ton aide.
Hors ligne
Salut Yann_du_sud,
Je pense que ton probleme venait du fait que tu ne renseigné aucun label pour les elements de ton zend_form.
Exemple :
$submit->setLabel('Envoyer');
++
Dernière modification par _Fuse_ (13-09-2008 09:52:02)
Hors ligne