2014-01-27 83 views
0

我想在Zend的形式编辑时间来检查我的复选框选中。 我有代码复选框如何设置复选框中的Zend

$master = new Application_Model_DbTable_MasterTables(); 
    $functionalList = $master->buildSelectListbyTable('mst_functional_areas', 'id', 'functional_area', "enable = '1'"); 

    $area = new Zend_Form_Element_MultiCheckbox('functional_area'); 
    $area->addMultiOptions($functionalList)->setLabel('Functional area of Specialization/Interest *:')->setAttrib('class', 'required'); 

    $this->addElement($area); 

现在我有阵在编辑时

Array 
(
    [id] => 9 
    [user_id] => 15 
    [work_experience] => 12 
    [functional_area] => Array 
     (
      [0] => 1 
      [1] => 2 
     ) 
    [industrial_sector] => a 
    [add_date] => 2014-01-27 12:06:03 
) 

functional_area是array.So我想检查与复选框选中functional_array的价值。

+0

你可以使用'“检查” => TRUE' –

回答

2

您可以使用setValue()这样$area->setValue($functional_area);

+0

对不起,这是行不通的 – Nikul

+0

我做了一些测试,它的工作。您可以在MultiCheckbox对象上调用'setValue()'传递所选项目的数组。这将默认选择在'addMultiOptions()'中传递的项目(在setValue中,您将传递的数组中的键传递给addMultiOptions)。例如。对于'addMultiOptions(1 => 'option1',2 =>' 选项2' ,3 =>'选项3)'和'的setValue(阵列(1,3))',你会得到'option1'和'option3'选择。一定不要通过在窗体对象上设置'setDefaults()'或'populate()'来覆盖它。 – Volvox

3
$data = Array 
(
    [id] => 9 
    [user_id] => 15 
    [work_experience] => 12 
    [functional_area] => Array 
     (
      [0] => 1 
      [1] => 2 
     ) 
    [industrial_sector] => a 
    [add_date] => 2014-01-27 12:06:03 
); 

$area->setValue($data["functional_area"]); 

您可以设定值像上面。