我的编辑视图文件有一组复选框。我已设法从数据库中检索所选的复选框值,并希望在视图文件中将它们标记为已选中。
修改视图文件
<div class="col-md-12">
<?= $this->Form->label('category','Pick Categories');?>
<?= $this->Form->select('category', $options,['multiple'=>'checkbox', 'required'=>'false', 'label'=>'Category','class'=>'col-md-12','selected'=>$catSel]); ?>
</div>
$ options是
$options = ['A'=>'Val1',
'B'=>'Val2',
'C'=>'Val3',
'D'=>'Val4',
'E'=>'Val5'];
$ catSel已在我的控制器中设置并返回正确的值。我检查了print_r(),如下所示:
Array ( [0] => 1 [1] => 3 )
我也试过直接输入选定的值
<?= $this->Form->select('shop_category', $options,['multiple'=>'checkbox', 'required'=>'false', 'label'=>'Shop Category','class'=>'col-md-12','selected'=>[1,3]]); ?>
我也试过发送$ catSel作为
Array ( [0] => A [1] => C )
这些都不起作用。不知道为什么。除了将'selected'设置为选择数组之外,我无法在任何地方找到任何解决方案。任何帮助将不胜感激。
答案 0 :(得分:6)
该选项不再被称为selected
,而是val
。 the Cookbook看起来有点过时,但the API docs中显示正确。
另请注意,必须使用您要选择的选项的实际键,例如,在您的情况下,您必须使用示例中的后一个并传递字符串A
和C
。