2010-11-19 17 views
0

値をチェックボックスに入力しようとしています。データベースに値が格納されている場合、チェックボックスをオンにします。zend frameworkで編集中にチェックボックスに値を入力します。

これは、フォームでの私のコードです:

$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'); 

のような行を返すあなたは、単に設定を行うZend_Formを行う$form->populate($values)に電話してみましょうことができ、例えばあなたのコントローラーの中で

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

+0

あなたの問題を解決しましたか? – Gordon