我使用XML配置文件来告诉Zend_Form我想要什么元素。我希望有一个<select>元素,但是我不确定如何使用XML语法添加<option>标记。
当然,我遗漏了一些非常基本的东西。
本
发布于 2010-05-21 03:00:55
ZF中的编程表单只支持表单元素的参数类型、名称和选项(不是选项的含义,而是元素设置的含义,如required或label)。假设动态设置多个值,例如:
$formConfig = new Zend_Config_Xml('/path/to/form.xml');
$form = new Zend_Form($formConfig);
$form->getElement('myselect')->setMultiOptions($arrayOfOptions);当然,也有可能使用自己的命名约定在XML文件中实际设置元素选项(将被Zend_Form忽略),然后从那里加载它们,而不是在运行时硬编码或检索它们,例如:
<?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()
);然而,它似乎并不比将这些选项存储在其他地方更有效。
https://stackoverflow.com/questions/2876344
复制相似问题