Php 使用现有标记呈现Zend_表单的最佳方法
我想使用Zend_表单,因为它的验证和过滤器等功能。但是表单的标记已经完成了。更糟糕的是,它不是很标准化,所以编写自定义装饰程序不是一个解决方案Php 使用现有标记呈现Zend_表单的最佳方法,php,zend-framework,zend-form,Php,Zend Framework,Zend Form,我想使用Zend_表单,因为它的验证和过滤器等功能。但是表单的标记已经完成了。更糟糕的是,它不是很标准化,所以编写自定义装饰程序不是一个解决方案 有没有一种简单的方法“应用”Zend_表单到现有的非常定制的标记?我认为这是一个常见的问题。如果您在手工制作的HTML表单中使用与Zend_表单中相同的名称,您只需在数据接收时实例化表单即可: public function processFormAction() { $form = new My_Form(); // this is your
有没有一种简单的方法“应用”Zend_表单到现有的非常定制的标记?我认为这是一个常见的问题。如果您在手工制作的HTML表单中使用与
Zend_表单中相同的名称,您只需在数据接收时实例化表单即可:
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>
//将$form作为Zend_表单传递到视图中的视图脚本
有一种更简洁的方法,使用ViewScript表单装饰器,专门设计用于将表单呈现为自定义标记。它的工作方式与Stefan给出的示例类似,但您可以使用自己的脚本或部分,如果您只想将元素、它们的标签和错误放入自定义标记中,则需要做的工作要少得多
请参阅和更具体的本Zend 我真正想从渲染中得到的只是验证错误和表单值:)