为嵌套的zend子表单中的元素赋值

时间:2011-08-05 15:22:55

标签: php jquery zend-form zendx zend-form-sub-form

我有一个3层表单结构。

有一个主要形式,frmMain(更像是一个容器形式),它有一些子形式,例如 frmSubFacts 。这些子形式如 frmSubFacts 有子形式;例如: frmTabSubCountry 。最里面的子表单包含表单元素,如文本字段。这些是使用表单级别的setBelongsTo方法进行分组的。

代码使用ZendX_JQuery在两个制表符行中呈现这些表单 frmSubFacts 和其他外部子表单位于顶部标签内,并且根据用户选择,子表单(例如 frmTabSubCountry )沿第二个内部标签行显示。

表格呈现得很好。唯一的问题是以编程方式将值设置为最里面的子表单中的字段/元素。

元素字段名称根据其层次结构和关系呈现,以便文本框名称可以是:事实[国家] [county_name]

但是,如何为此字段指定值?我尝试了以下选项:

$arrFormData['Facts[Country][county_name]'] = 'Singapore';

$Form->populate(array('Facts'=> 
        array('Country'=> array('country_name'=> 'Singapore'))));

$form->Facts->Country->country_name->setValue('Singapore');

$form->getSubForm('Facts')
                 ->getSubForm('Country')
                     ->getElement('country_name')->setValue('Singapore');

虽然应用程序呈现良好且POST操作符合预期,但获取“事实”子表单后获取子表单的最后一行失败。谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

检查这是否有帮助:

$this->element->Facts->Country->country_name->setValue('Singapore');