Zend Framework 带有的标准表单元素Zend Framework 带有的具体元素类涵盖了大部分的 HTML 表单元素。其中大部分当装饰元素时,指定了特定的视图助手来用,但有一些还提供了另外的功能。下面是这些类的列表,还有它们提供的功能的描述。 Zend_Form_Element_Button
用来生成 HTML 按钮元素, 像提交元素一样,它使用元素的标签作为元素的值来显示,还句话说,通过设置元素的值来设置按钮上的文字。如果有翻译适配器,标签将显示翻译后的文字。 因为标签用作元素的一部分,但按钮元素只用 ViewHelper 和 DtDdWrapper 装饰器。
在组装和校验表单之后,我们可用 Zend_Form_Element_Checkbox
HTML checkboxes 让你返回一个特定的值,但基本上以布尔来操作:当它被 check,值就被提交;当没有 check,什么都不提交。在内部,
缺省地,已选的值是 '1',未选的值是 '0'。你可以通过
另外,设置 checkbox 的
Zend_Form_Element_Hash该元素提供保护以防止 CSRF 攻击表单,确保提交的数据来自于用户的会话,而不是流氓脚本。保护是通过添加一个哈希(hash)元素给表单并在表单提交时校验它来达成的。 哈希(hash)元素名是唯一的。建议使用 salt 选项,两个哈希有相同的名字和不同的 salt 会有冲突的: <?php $form->addElement('hash', 'no_csrf_foo', array('salt' => 'unique')); ?>
你可以稍后使用
在内部,元素用 'formHidden' 视图助手用来解析在表单中的元素。 Zend_Form_Element_Image图像也可以用作表单元素,并允许你指定图形元素作为表单按钮。
图像需要图像源文件。
图像元素使用 图像装饰器 来解析 (还有标准错误、 HtmlTag 和 Label 装饰器)。你可以可选地指定一个标签(tag)给 Zend_Form_Element_MultiCheckbox你经常会有一组相关的 checkboxes,并且想把结果组成组,这个很像 Multiselect,但是这个不是下拉列表,而是需要显示 checkbox/值对。
你可以用下列方法操作各种 checkbox 选项:
为了标记选中的条目,需要传递一个数组给 $element = new Zend_Form_Element_MultiCheckbox('foo', array( 'multiOptions' => array( 'foo' => 'Foo Option', 'bar' => 'Bar Option', 'baz' => 'Baz Option', 'bat' => 'Bat Option', ) )); $element->setValue(array('bar', 'bat')); 注意即使是设置一个单个的值,也必需传递一个数组。 Zend_Form_Element_Multiselect
XHTML
如果翻译适配器随表单和/或元素注册,选项值将被翻译用于显示。 Zend_Form_Element_Password密码元素基本上是普通的文本元素 -- 除了你不想它以错误消息的形式显示或重新显示表单的时候显示出来。
Zend_Form_Element_Radio
Radio 元素让你指定若干选项,而你只需要一个返回值。 像其它所有继承多重元素基础类的元素,下列方法可用来处理 radio 选项的显示:
Zend_Form_Element_ResetReset 按钮一般用于清理表单,而不是要提交的数据。然而,因为它们用于显示,所以它们属于标准元素。
Zend_Form_Element_Select
Select boxes 是限定从给定数据里选择的一个通用的办法。 因为它继承基础多重元素,下列方法可用来处理选择选项:
Zend_Form_Element_Submit
提交按钮用于提交表单。你可以使用多个提交按钮,你可以使用按钮提交表单来决定哪个动作处理提交的数据。
ViewHelper 和 DtDdWrapper 装饰器解析元素。没有使用标签(label)装饰器,因为当解析元素时使用了按钮标签,一般地,对于提交元素不需要错误(代码或消息)。 Zend_Form_Element_Text
到目前为止,大部分流行的表单元素是文本元素,对于有限的文本输入,对大部分数据输入来说是个理想的元素。 Zend_Form_Element_Textarea
Textareas 用于大量的文本处理,对提交的文本的长度没有限制(除非你的服务器或PHP有限制)。
|