Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour, je me permet de poster parce que je n'avance plus...
je doit créer un formulaire :
J'ai fait ça :
zend_form:
<?php class Form_Myform extends Zend_Form { public function init() { $this->setMethod('post'); for ($i = 1; $i <= 10; $i++) { $elementUserPseudo = new Zend_Form_Element_Text("forced_userPseudo_$i"); $elementUserPseudo->setLabel("$i"); $this->addElement($elementUserPseudo); $elementUserpass = new Zend_Form_Element_Text("forced_userpass_$i"); $elementUserpass ->addValidator('StringLength', true, array(10)); $elementUserpass ->setAttrib('maxlength',10); $this->addElement($elementUserpass ); $elementUserEmail = new Zend_Form_Element_Text("forced_userEmail_$i"); $elementUserEmail->addFilter('StringToLower'); $elementUserEmail->setRequired(true); $elementUserEmail->addValidator('NotEmpty', true); $elementUserEmail->addValidator('EmailAddress'); $this->addElement($elementUserEmail); $elementSubmitInvitation = new Zend_Form_Element_Submit('submitforcedinscritions'); $elementSubmitInvitation->setLabel('Valider les inscriptions'); $elementSubmitInvitation->addDecorator(new Decorator_DefaultButtonElement()); $this->addElement($elementSubmitInvitation); } } }
et je l'affiche comme cela :
View :
//construciton du formulaire echo '<div id="forced_form">'; echo '<div id="forced_form_head">'; echo '<div id="forced_form_head_item">Pseudo</div>'; echo '<div id="forced_form_head_item">Tel Mobile</div>'; echo '<div id="forced_form_head_item">Adresse Email</div>'; echo '</div>'; for($i=1;$i<=10;$i++) { echo '<div id="forced_form_content">'; echo '<div id="forced_form_content_number">'.$i.'</div>'; echo '<div id="forced_form_content_item">'.$this->form->__get('forced_userPseudo_'.$i).'</div>'; echo '<div id="forced_form_content_item">'.$this->form->__get('forced_userMobileNumber_'.$i).'</div>'; echo '<div id="forced_form_content_item">'.$this->form->__get('forced_userEmail_'.$i).'</div>'; echo '</div>'; } echo '<div id="forced_form_submit">'.$this->form->__get('submitforcedinscritions').'</div>';
Je n'utilise pas de decorator (même si j'aimerai bien) parce que ne maitrise pas ce composant et je ne voit pas comment le faire autrement.
L'affichage de mon formulaire marche nikel mas le bouton submit ne fonctionne pas... (ce qui me semble normal)
Donc si vous avez une solution à mon problème (le mieux en utilisant des décorators) je suis preneur !!
merci d'avance.
Dernière modification par neilime (28-04-2009 16:49:25)
Hors ligne
Excuse-moi si je me trompe, mais je ne vois pas la déclaration de ton bouton submit 'submitforcedinscritions' dans ta classe Form_MyForm.
Je n'ai peut-être pas compris ce que tu veux en fait. Explicite un peu plus ...
Hors ligne
Autan pour moi je n'avais pas tout copier de mon code...
Hors ligne
Je ne pense pas, mais bon je poste quand mêm mon code...
Controleur :
$form = $this->getInvitationForcedForm(); $this->view->form = $form;
focntion getInvitationForcedForm();
private function getInvitationForcedForm(){ //------------------------------------ require_once APPLICATION_PATH . '/forms/Form_InvitationForced.php'; $form = new Form_InvitationForced(); $form->setAction($this->_helper->url('inviteforced')); //------------------------------------ return $form; }
Mais bon le bouton submit ne déclenche rien du tout, c'est qui me semble bizarre.
En regardant le code source de la page, il n'y a pas la balise <form action="" method=""> ça doit venir de là mais je ne sais pas comment la faire afficher.
Dernière modification par neilime (28-04-2009 17:10:56)
Hors ligne
neilime a écrit:
...
En regardant le code source de la page, il n'y a pas la balise <form action="" method=""> ça doit venir de là mais je ne sais pas comment la faire afficher.
Hello, tu peux normalement utiliser dans ta vue :
$this->form->getMethod(); // Pour recuperer 'POST' or 'GET' $this->form->getAction(); // Pour recuperer l'action
A noter, également que tu peux, et je pense que c'est préférable, utiliser la syntaxe suivante :
$this->setMethod(Zend_Form::METHOD_POST);
en lieu et place de :
$this->setMethod('post');
Voilà, en espérant que cela t'a aidé
++
Fred
Hors ligne
Pages: 1