在名称中添加许多带[]的选择元素

时间:2010-09-21 11:11:17

标签: php zend-form zend-form-element

我希望能够添加Zend_Form多个Zend_Form_Element_Select

我在My_Form_Selects extends Zend_Form中有一些循环

$element = $this->createElement('Select', 'element[]');
$this->addElement($element);

但它只创建一个select元素(Zend_Form忽略元素名称中的[]

我该怎么做?

1 个答案:

答案 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="" />

via

来自manual

  

Zend_Form :: setIsArray($ flag):通过将标志设置为TRUE,您可以指示应将整个表单视为数组。默认情况下,除非已调用 setElementsBelongTo(),否则表单的名称将用作数组的名称。如果表单没有指定名称,或者未设置 setElementsBelongTo(),则将忽略此标志(因为没有元素可能属于的数组名称)。

     

您可以使用 isArray()访问器确定是否将表单视为数组。

     

Zend_Form :: setElementsBelongTo($ array):使用此方法,您可以指定表单所有元素所属的数组的名称。您可以使用 getElementsBelongTo()访问者来确定名称。