2

Zend_Formたくさん追加できるようにしたいですZend_Form_Element_Select

私はいくつかのループを持っていMy_Form_Selects extends Zend_Formます

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

ただし、select要素は1つしか作成しません(要素の名前でZend_Formは無視されます)。[]

どうすればいいですか?

4

1 に答える 1

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

経由

マニュアルから:

Zend_Form::setIsArray($flag) : フラグ TRUE を設定すると、フォーム全体を配列として扱う必要があることを示すことができます。デフォルトでは、setElementsBelongTo()が呼び出されていない限り、フォームの名前が配列の名前として使用されます。フォームに名前が指定されていない場合、またはsetElementsBelongTo()が設定されていない場合、このフラグは無視されます (要素が属する配列名がないため)。

isArray()アクセサーを使用して、フォームが配列として扱われているかどうかを判断できます。

Zend_Form::setElementsBelongTo($array) : このメソッドを使用すると、フォームのすべての要素が属する配列の名前を指定できます。getElementsBelongTo()アクセサーを使用して名前を判別できます。

于 2010-09-21T11:27:38.380 に答える