我正在使用XML配置文件告诉Zend_Form我想要什么元素。我想要一个<select>
元素,但我不确定如何使用XML语法添加<option>
标记。
当然,我遗漏了一些非常基本的东西。
本
答案 0 :(得分:1)
ZF中的程序化表单仅支持表单元素的参数类型,名称和选项(不是选项的含义,而是元素设置的含义,如必需或标签)。假设将动态设置多个值,例如:
$formConfig = new Zend_Config_Xml('/path/to/form.xml');
$form = new Zend_Form($formConfig);
$form->getElement('myselect')->setMultiOptions($arrayOfOptions);
当然,有可能使用您自己的名称约定在XML文件中实际设置元素选项(Zend_Form将忽略它们),然后从那里加载它们而不是在运行时进行硬编码或检索:例如: / p>
<?xml version="1.0" encoding="UTF-8"?>
<form>
<user>
<example>
<name>mysampleform</name>
<method>post</method>
<elements>
<myselect>
<type>select</type>
<name>myselect</name>
<multioptions> <!-- custom tag -->
<option value="First">1</option>
<option value="Second">2</option>
<option value="Third">3</option>
</multioptions>
<options>
<label>Choose an option:</label>
<required>true</required>
</options>
</myselect>
<submit>
<type>submit</type>
<options>
<value>Submit</value>
</options>
</submit>
</elements>
</example>
</user>
$formConfig = new Zend_Config_Xml('/path/to/form.xml');
$form = new Zend_Form($formConfig);
$form->getElement('myselect')->setMultiOptions(
$formConfig->user->example->elements->myselect->multioptions->toArray()
);
然而,这似乎并不比将这些选项存储在其他地方更有效。