我的复选框列表的HTML如下所示:
<dt id="list-label">
<label for="list" class="optional">
Choose which feeds to include in the mix
</label>
</dt>
<dd id="list-element">
<label for="list-1">
<input type="checkbox" name="list[]" id="list-1" value="1">Marko Polo
</label>
<br />
<label for="list-2">
<input type="checkbox" name="list[]" id="list-2" value="2">Jeano Polo
</label>
</dd>我正在尝试用selected=selected预填充数据库中值为1的人。我认为以下几点是可行的:
$form->setDefaults(array('list-1'=>1,'list-2'=>1));但事实并非如此。有什么办法吗?
编辑
Here is my form class code:
$model = new Admin_Model_Db();
$model->setTableName('graduates');
$gradA = $model->getAllGraduates();
foreach ($gradA as $grad){
if (!empty($grad['twitter'])){
$twitter[$grad['id']] = $grad['firstname'] . ' ' . $grad['lastname'];
}
}
$list = $this->CreateElement('multicheckbox', 'list')
->setLabel('Choose which feeds to include in the mix')
->setRequired(false)
->setMultiOptions($twitter);发布于 2011-09-22 19:33:15
您的表单元素名为list[],这意味着当您的框被选中并以这种方式获得它们的值时:
$list = $form->getElement('list')->getValue();$list的值为数组(1,2)
因此,从逻辑上讲,这应该是可行的:
$form->setDefaults(array('list'=>array(1,2));
//if not, try with strings instead of integers array('1','2') 发布于 2011-09-22 18:57:34
试试这个:
$all_record = array('k1'=>'v1', 'k2'=>'v2');
$checked_values = aray('k1');
$checkbox = new Zend_Form_Element_MultiCheckbox('id',
array('multiOptions' => $all_records)
);
$checkbox->setValue($checked_values);
// ...
$this->addElement($checkbox);当然,$this是Zend_Form :)
https://stackoverflow.com/questions/7519740
复制相似问题