2011-05-31 81 views

回答

1

创建每个$另我Zend_Form_SubForm的:

for ($i = 1; $i < 10; $i++) { 
    $subform = new Zend_Form_SubForm(); 
    $subform->addElement('text', 'name'); 
    $mainform->addSubForm($subform, $i); 
} 

文本元素将被命名为 “1名]”, “2名]”,等等。如果你希望他们被命名为“列表[1] [名]”,那么你需要的子窗体的另一个层面:

$listform = new Zend_Form_SubForm(); 
$mainform->addSubForm($listform, 'list'); 
for ($i = 1; $i < 10; $i++) { 
    $listsubform = new Zend_Form_SubForm(); 
    $listsubform->addElement('text', 'name'); 
    $listform->addSubForm($listsubform, $i); 
} 
+0

很多thanx!它的工作原理!:) – Anthony 2011-05-31 14:48:33

+1

你只需要1级子表单,然后为每个元素添加:$ name-> setBelongsTo('name'); – venimus 2011-05-31 15:21:53

1

使用

$element->setBelongsTo($array) 

,并在$阵列可以定义为多个层级当你需要的时候,你不需要创建那么多级别的子表单。你甚至不需要创建任何子表单。

享受!

+0

Thx,我试过了。它似乎并没有工作:( 在子窗体工作完全子窗体 – Anthony 2011-06-01 09:42:30

+1

我的错,语法应该是这样的(没有数组): _ $ element-> setBelongsTo('level1 [level2] [level3] ')_ - 在100%工作 – 2011-06-01 09:55:11

+0

好的,thx。将在下一个项目中尝试它。我尝试了venimus所说的方式,但它不起作用。 – Anthony 2011-06-01 10:02:31