我正在尝试将值填充到复选框中。我希望在数据库中存储值时检查复选框。
这是我的表格代码:
$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
那么第二个复选框。
我需要在控制器中做些什么。
有谁可以帮我解决这个问题。
答案 0 :(得分: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,因此您不应在控制器内创建表单,也不应在其中添加任何查询。