Witam
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 = $form->createElement('text', 'email', array('class' => 'text')); $element_email->addValidator('EmailAddress')
->setRequired(true)
->addFilter('StringToLower')
->addFilter('StringTrim')
->setLabel('E-mail');
$element_opis = $form->createElement('text', 'opis', array('class' => 'text')); $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.