我希望能够添加Zend_Form
多个Zend_Form_Element_Select
。
我在My_Form_Selects extends Zend_Form
中有一些循环
$element = $this->createElement('Select', 'element[]');
$this->addElement($element);
但它只创建一个select元素(Zend_Form
忽略元素名称中的[]
。
我该怎么做?
答案 0 :(得分:2)
你试过了吗?
$foo = new Zend_Form_SubForm();
$foo->setElementsBelongTo('foo')
->setElements(array(
'bar' => 'text',
'baz' => 'text'
));
echo $foo;
导致HTML类似:
<input type="text" name="foo[bar]" id="foo.bar" value="" />
<input type="text" name="foo[baz]" id="foo.baz" value="" />
来自manual:
Zend_Form :: setIsArray($ flag):通过将标志设置为TRUE,您可以指示应将整个表单视为数组。默认情况下,除非已调用 setElementsBelongTo(),否则表单的名称将用作数组的名称。如果表单没有指定名称,或者未设置 setElementsBelongTo(),则将忽略此标志(因为没有元素可能属于的数组名称)。
您可以使用 isArray()访问器确定是否将表单视为数组。
Zend_Form :: setElementsBelongTo($ array):使用此方法,您可以指定表单所有元素所属的数组的名称。您可以使用 getElementsBelongTo()访问者来确定名称。