【问题标题】:Populate date in MultiOptions element of Zend Form在 Zend Form 的 MultiOptions 元素中填充日期
【发布时间】:2009-08-22 09:41:53
【问题描述】:

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

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

【问题讨论】:

  • 您能否展示您用于元素创建/填充的代码?

标签: zend-framework zend-form


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    您到底想要下拉框中的什么?

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

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

    例如

    $options = array();
    foreach ( $data as $value ) {    
      $options[$value['id']] = $value['description'];
    }
    
    $select = Zend_From_Element_Select("select_field");
    $select->multiOptions($options);
    

    【讨论】:

      【解决方案3】:

      试试这个:

      数组(

      [id] => 1
      [代码] => Dep98
      [描述] => 你好世界
      [设施] => 数组 (
      FacName1 => [0]
      FacName2 => [1]
      )
      )

      【讨论】:

        猜你喜欢
        • 2011-04-22
        • 2011-04-04
        • 2011-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多