Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用现有标记呈现Zend_表单的最佳方法_Php_Zend Framework_Zend Form - Fatal编程技术网

Php 使用现有标记呈现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_表单,因为它的验证和过滤器等功能。但是表单的标记已经完成了。更糟糕的是,它不是很标准化,所以编写自定义装饰程序不是一个解决方案


有没有一种简单的方法“应用”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() ?>
        &nbsp;
        <?php echo $form->button2->renderViewHelper() ?>
    </div>
</form>
//将$form作为Zend_表单传递到视图中的视图脚本

有一种更简洁的方法,使用ViewScript表单装饰器,专门设计用于将表单呈现为自定义标记。它的工作方式与Stefan给出的示例类似,但您可以使用自己的脚本或部分,如果您只想将元素、它们的标签和错误放入自定义标记中,则需要做的工作要少得多


请参阅和更具体的本Zend

我真正想从渲染中得到的只是验证错误和表单值:)