在Zend Form的MultiOptions元素中填充日期

时间:2009-08-22 09:41:54

标签: zend-framework zend-form

您好,我有一个这样的数组:

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中它没有显示任何记录。

3 个答案:

答案 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]
    )
    )