2014-01-27 36 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"]); 

您可以設定值像上面。