您好,我有一个这样的数组:
Array (
[id] => 1
[code] => Dep98
[description] => Hello World
[facility] => Array (
[0] => FacName1
[1] => FacName2
)
)
但是当我将这个数组填充到Zend_Form时,它只显示具有数组索引中定义的相同id的textboxes元素中的数据,而不是在multiselect下拉元素中。例如:
'code' id is also define in form's first textbox element, 'description' id is also define in form's second textbox element, 'facility' id is also define in form's third MultiOptions element
但是在MultiOptions中它没有显示任何记录。
答案 0 :(得分:1)
您想在下拉框中找到什么内容?
传递给multiOptions的数组必须采用value =>的形式标题。
您可能希望遍历结果并生成选项数组。
例如
$options = array();
foreach ( $data as $value ) {
$options[$value['id']] = $value['description'];
}
$select = Zend_From_Element_Select("select_field");
$select->multiOptions($options);
答案 1 :(得分:1)
我同意Travis,你应该传递一个包含以下值的数组来填充:
$vals = array('code'=>5,
'description' => 'testing',
'facility' => array(1=>'FacName2'));
$form->populate($vals);
但请注意,在尝试填充或验证之前,设施表单元素中必须填写选项,如果有空列表,则不要期望设置设施值设施元素中的选项。
答案 2 :(得分:0)
试试这个:
数组(
[id] => 1
[code] => Dep98
[描述] =>你好世界
[facility] =>数组(
FacName1 => [0]
FacName2 => [1]
)
)