Если вы используете одни и те же имена в вашей ручной-HTML-форме, как в вашем Zend_Form
вы можете просто создать экземпляр формы на приеме данных:
public function processFormAction()
{
$form = new My_Form(); // this is your Zend_Form
if ($form->isValid($_POST)) {
// success!
} else {
// failure!
}
}
Там нет необходимости использовать возможности рендеринга Zend_Form
если вы этого не хотите.
Второго варианта совместить собственную разметку с элементами формы в:
// view-script with $form being the the Zend_Form passed into the view
<form method="<?php echo $form->getMethod() ?>" action="<?php echo $form->getAction()?>">
<div id="elements">
<?php echo $form->element1->renderLabel() . $form->element1->renderViewHelper() ?>
<br />
<?php echo $form->element2->renderLabel() . $form->element2->renderViewHelper() ?>
</div>
<div id="buttons">
<?php echo $form->button1->renderViewHelper() ?>
<?php echo $form->button2->renderViewHelper() ?>
</div>
</form>
В качестве альтернативы, если вы хотите, чтобы фильтровать и проверять введенные данные, вы можете избежать всех наворотов из Zend_Form
и использовать Zend_Filter_Input
, который есть, просто говорят, Zend_Form
без всякой разметки. Поскольку Zend_Filter_Input
может использовать все стандартные и настраиваемые фильтры и валидаторы, которые вы можете использовать с Zend_Form
, переход должен быть довольно простым.
Все, что я действительно хочу получить от рендера - это ошибки проверки и значения формы :) –