Chciałbym zrobić w formularzu Zend_Form tak, żeby po nieudanej walidacji formularza, jego pola uzupełniały się podanymi danymi...
Aktualnie po nieudanej walidacji wyskakuje błąd odnośnie walidacji oraz otwiera się formularz - ale nie wypełniony danymi tylko z pustymi polami.
<?php class Admin_KontaUzytkownikowController extends BaseController { public function indexAction() { $this->render('konta-uzytkownikow', null, true); } public function formAction() { $form = $this->getForm(); $this->view->form = $form; $this->render('konta-uzytkownikow-form', null, true); } public function zapiszAction() { if(!$this->_request->isPost()) { return $this->redirectToController('konta-uzytkownikow/form'); } if(!$this->validateForm($this->getForm(), $_POST)) { return $this->redirectToController('konta-uzytkownikow/form'); } // Walidacja poprawna - wykonywanie poniżej operacji na danych... } private function getForm() { $form = new Zend_Form(); $form->setAction($this->_request->getBaseUrl() . '/' . $this->_request->getControllerName() . '/zapisz')->setMethod('post'); $element_email->addValidator('EmailAddress') ->setRequired(true) ->addFilter('StringToLower') ->addFilter('StringTrim') ->setLabel('E-mail'); $element_opis->setRequired(true) ->addFilter('StringTrim') ->setLabel('Opis konta użytkownika'); $element_submit = $form->createElement('button', 'ZAPISZ', array('type' => 'submit', 'class' => 'button')); $form->addElement( $element_email )->addElement( $element_opis )->addElement( $element_submit ); return $form; } } ?>
Jaki jest najlepszy sposób na uzupełnienie pól formularza po nieudanej walidacji ?
Szkoda, że przekierowaniu do kontrolera/akcji, które występuje w zapiszAction w otworzonej akcji budującej formularz nie mogę już dostać się do danych z tablicy _POST, czyli tych, które wypełniono w formularzu...
Napewno jest jakieś proste i sprawdzone rozwiązanie, proszę o pomoc.