我需要動態擴展zend表格的幫助。如何驗證和渲染動態擴展zend表格
我與窗體形式,其包含兩個元素:
<form>
<fieldset class="itemGroup">
<label>
Question
<input type="text" name="items[questions][]" value="">
</label>
<label>
Answer
<input type="text" name="items[answers][]" value="">
</label>
</fieldset>
</form>
我用下列方法獲得的:
$itemsSubform = new Zend_Form_SubForm();
$form->addSubForm($itemsSubform, 'items');
$itemsSubform->setElementsBelongTo('items');
$itemQuestion = new Zend_Form_Element_Text('questions', array(
'label' => 'Question',
'isArray' => true,
'filters' => array(
'stringTrim',
),
'validators' => array(
array('stringLength', array('max' => 255)),
),
));
$itemAnswer = new Zend_Form_Element_Text('answers', array(
'label' => 'Answer',
'isArray' => true,
'filters' => array(
'stringTrim',
),
'validators' => array(
array('stringLength', array('max' => 255)),
),
));
$itemsSubform->addDisplayGroup(array($itemQuestion, $itemAnswer), 'itemGroup');
如果需要,我只複製所有字段集用於由JavaScript延伸形式。
所有工作正常,直到我提交表單。在驗證期間沒有元素驗證,並且在呈現形式期間,由這樣的數據填充,我從類Zend_View_Abstract獲得錯誤消息,轉義值是數組而不是字符串(在渲染元素中爲逃避其值)調用此方法。如果我打電話給$ form-> getValues();如果我想調用$ form-> getValues();如果我調用$ form-> getValues()。確認後,(由JavaScript另一個字段集添加)我得到這個:
Array
(
[items] => Array
(
[questions] => Array
(
[0] => lorem
[1] => dolor
)
[answers] => Array
(
[0] => ipsum
[1] => sit
)
)
)
有人能告訴我如何做人形成?理想的解決方案是當表單自己分別驗證每個值並查找呈現fieldset(displayGroup)的次數時。