2010-11-19 82 views
0

我正試圖將值填入複選框。我想在數據庫中存儲值時檢查複選框。在Zend框架中編輯時將值填入複選框

這是我在表單代碼:

$form ['test_1'] = new Zend_Form_Element_Checkbox('test_1'); 
$form['test_1']->setLabel('test1')->setCheckedValue('1'); 

$form ['test_2'] = new Zend_Form_Element_Checkbox('test_2'); 
$form['test_2']->setLabel('test2')->setCheckedValue('2'); 

如果價值1在數據庫中,我要進行檢查的第一個複選框,如果它2然後第二個複選框,需要進行檢查。

我需要在控制器中做什麼。

請問誰能幫我解決這個問題。

回答

1

最簡單的方法是將數據庫中的值作爲映射到表單輸入元素的數組(例如,返回一行像

array('test_1' => 'value of checkbox', 'test_2' => 'value of checkbox'); 

然後,您可以簡單地調用$form->populate($values),讓做Zend_Form做設定,例如在你的控制器上做

public function showFormAction() 
{ 
    $form = $this->getHelper('forms')->get('MyForm'); 
    $data = $this->getHelper('dbGateway')->get('SomeTable'); 
    $form->populate($data->getFormData()); 
    $this->view->form = $form; 
} 

注意:上面的幫手不存在。他們只是爲了說明你如何處理這個問題。請記住,你需要thin controllers and fat models,所以你不應該在控制器內部創建表單,也不要在那裏放置任何查詢。

+0

thanx的回覆。 – rasth 2010-11-26 06:44:23

+0

@rasth是否解決了您的問題? – Gordon 2010-11-26 07:50:09