只是想知道zend表单和普通html表单之间是否有区别?
我开始知道我们可以简单地在视图文件中添加 HTML 表单并且它可以工作,但是表单元素的 isValid 函数不适用于普通的 HTML 表单。还有其他区别吗?
我是第一次构建 Zend Framework 应用程序,并且很难在 zend 表单中使用 css,所以我想知道是否可以在使用 zend 验证功能(如 isValid)的同时使用普通表单?
只是想知道zend表单和普通html表单之间是否有区别?
我开始知道我们可以简单地在视图文件中添加 HTML 表单并且它可以工作,但是表单元素的 isValid 函数不适用于普通的 HTML 表单。还有其他区别吗?
我是第一次构建 Zend Framework 应用程序,并且很难在 zend 表单中使用 css,所以我想知道是否可以在使用 zend 验证功能(如 isValid)的同时使用普通表单?
Zend_Form 简化了 Web 应用程序中的表单创建和处理。它执行以下任务:
元素输入过滤和验证
元素排序
元素和表单渲染,包括转义
元素和表单分组
元素和表单级别的配置
正是Element and Form rendering, including escaping
因为生成的标记给大多数人带来麻烦的第三项,所以他们放弃了 Zend Form,但也不得不放弃其他人的便利。
但是,您可以通过使用 viewScript 装饰器来两全其美。我在这里的回答给出了一个如何做到这一点的例子,所以我不会在这里重复自己。
基本上,Zend Form 将表单创建封装到一个类中,以便于操作/验证。表单提供了属性和方法,使创建和操作表单更加容易。
HTML 表单只是没有附加功能的标记,除非您自己编写。Zend Form 将为您生成该标记,或者您可以自己生成它,如链接答案中所示。
有关更多信息,您可能需要阅读这篇关于Zend_Form 的装饰器的文章,作者是 Zend Framework 的首席开发人员 Mathew Weier O'Phinney。
如果你愿意,你可以把它们混合起来。您可以向元素添加验证规则,向表单添加元素,并针对表单或每个表单元素进行验证。但是您不需要渲染表单(带有 Zend_Form_Element_Hash 或类似的表单除外。)
<?php
$form = new Zend_Form;
$form->setMethod('GET');
$e1 = new Zend_Form_Element('first');
$e1->setRequired(true);
$e2 = new Zend_Form_Element('second');
$e2->setRequired(true);
$submit = new Zend_Form_Element_Submit('submit', array(
'label' => 'Do something'
));
$form->addElements(array($e1, $e2, $submit));
if(isset($_GET) && count($_GET)) {
if ($form->isValid($_GET)) {
echo 'Valid';
} else {
echo 'Invalid';
}
}
?>
<form method="get" action="">
First:<input type="text" name="first" id="first" value="">
Second:<input type="text" name="second" id="second" value="">
<input type="submit" name="submit" id="submit" value="Go for it">
</form>