присваивание значений элементам во вложенных формах Zend - PullRequest
1 голос
/ 05 августа 2011

У меня есть трехуровневая структура формы.

Есть основная форма, frmMain (которая больше похожа на контейнерную форму), которая имеет подчиненные формы, например, frmSubFacts .И эти субформы, такие как frmSubFacts , имеют субформы;например: frmTabSubCountry .Самая внутренняя подчиненная форма содержит элементы формы, такие как текстовые поля.Они сгруппированы с использованием метода setBelongsTo на уровне формы.

Код использует ZendX_JQuery для отображения этих форм в 2 строках вкладок, так что frmSubFacts и другие внешние подформы находятся в верхних вкладкахи на основе выбора пользователя субподформы (такие как frmTabSubCountry ) отображаются вдоль второй внутренней строки вкладки.

Форма хорошо визуализируется.Единственной проблемой является программная установка значений для полей / элементов в самых внутренних подформах.

Имена полей элементов отображаются на основе их иерархии и взаимосвязи, так что имя текстового поля может быть: Facts [Страна] [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 соответствуют ожиданиям, последняя строка для получения Subforms завершается неудачно после получения подчиненной формы Facts.Спасибо за помощь

1 Ответ

0 голосов
/ 01 августа 2012

Проверьте, помогает ли это:

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