0

你好我有一个这样的数组:

Array ( 
  [id] => 1 
  [code] => Dep98 
  [description] => Hello World 
  [facility] => Array ( 
    [0] => FacName1 
    [1] => FacName2
  )
)

但是,当我将此数组填充到 Zend_Form 时,它只显示文本框元素中的数据,该元素具有与数组索引中定义的相同 ID,而不是多选下拉元素中的定义。例如:

'code' id 也在表单的第一个文本框元素中定义,
'description' id 也在表单的第二个文本框元素中定义,
'facility' id 也在表单的第三个 MultiOptions 元素中定义

但是在 MultiOptions 中它不显示任何记录。

4

3 回答 3

1

你到底想要什么在下拉框中?

传递给 multiOptions 的数组必须采用 value => title 的形式。

您可能希望遍历结果并生成选项数组。

例如

$options = array();
foreach ( $data as $value ) {    
  $options[$value['id']] = $value['description'];
}

$select = Zend_From_Element_Select("select_field");
$select->multiOptions($options);
于 2009-08-23T00:31:04.663 回答
1

我同意 Travis,您应该传递一个包含以下值的数组来填充:

$vals = array('code'=>5, 
              'description' => 'testing', 
              'facility' => array(1=>'FacName2'));
$form->populate($vals);

但请注意 -在尝试填充或验证之前,必须在设施表单元素中填写选项,如果设施元素中有一个空的选项列表,则不要期望设置设施值。

于 2009-08-24T05:52:40.197 回答
0

尝试这个:

大批 (

[id] => 1
[code] => Dep98
[description] => Hello World
[facility] => Array (
FacName1 => [0]
FacName2 => [1]
)
)

于 2010-10-14T16:14:54.210 回答