Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je suis amené à n’utilisé qu’un seul select pour une action précise.
L’idée est de ne pas surcharger le dossier forms en créant une autre classe pour un formulaire aussi petit.
Alors j’ai fais ca, mais vous vous doutez que cela ne fonctionne pas :
public function adminForm() { $form = new Zend_Form($options = null); $form->setName('selectAdmin'); $listAdmin = new Zend_Form_Element_Select('it_login'); $listAdmin->setLabel("Admins'Name"); $listAdmin->addMultiOption(NULL, 'Choose'); $table_admin = new Model_DbTable_ItStaff(); foreach ($table_admin->fetchAll() as $row) { $listAdmin->addMultiOption($row->it_id, $row->it_login); } $submit = new Zend_Form_Element_Submit('submit'); $submit->setAttrib('id', 'submitbutton'); $submit->setValue('submit'); return $form->addElements(array($login, $submit)); }
Et c’est appelé dans le même controller de cette facon :
$form = $this->adminForm(); $this->view->form = $form;
Message: SQLSTATE[HY093]: Invalid parameter number: no parameters were bound
J’ai essayé quelques autres manières d’écrire le formulaire mais sans succès.
Comment dois-je m’y prendre ?
Merci
Dernière modification par maryooman (21-04-2010 15:50:07)
Hors ligne
Salut,
le message d'erreur que tu obtiens ne te renseigne pas sur la validité du formulaire.
Tu dois avoir une erreur dans ta requête sur ta table admin.
J'ai repris ton code dans un de mes contrôleur avec des valeurs en dur et sa fonctionne très bien.
public function adminForm() { $form = new Zend_Form($options = null); $form->setName('selectAdmin'); $listAdmin = new Zend_Form_Element_Select('it_login'); $listAdmin->setLabel("Admins'Name"); $listAdmin->addMultiOption('1', '1') ->addMultiOption('2','2') ->addMultiOption('3','3'); $submit = new Zend_Form_Element_Submit('submit'); $submit->setAttrib('id', 'submitbutton'); $submit->setValue('submit'); return $form->addElements(array($listAdmin, $submit)); }
Ensuite dans une action je fais :
$this->view->form2 = $this->adminForm();
Et dans ma vue :
echo $this->form2;
Et sinon c'est quoi ton $login qu'on voit dans ton addElements(). Il est déclaré quelque part ?
Hors ligne
l'erreur vien du $login ....
même quand je t'ai lu je n'arrivais pas à le retrouver, j'ai faire ctrl + F pour le retrouver.
J'avais pourtant lu et relu une bonne dizaine de fois ce boue de code ...
merci de ta réponse et désolé
éventuellement, ce poste peut être effacé je pense
Hors ligne
Pages: 1