【问题标题】:Cakephp 3 Unable to mark multiple checkboxes selectedCakephp 3无法标记选中的多个复选框
【发布时间】:2015-03-11 16:02:57
【问题描述】:

我的编辑视图文件有一组复选框。我已设法从数据库中检索选定的复选框值,并希望在视图文件中将它们标记为选中。

编辑视图文件

 <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 )

这些都不起作用。不知道为什么。除了将“选定”设置为选择数组之外,我无法在任何地方找到任何解决方案。任何帮助将不胜感激。

【问题讨论】:

    标签: php cakephp cakephp-3.0


    【解决方案1】:

    该选项不再称为selected,而是val。看起来the Cookbook 有点过时了,但它在the API docs 中正确显示。

    还请注意,您必须使用要选择的选项的实际键,即在您的情况下,您必须使用后面的示例并传递字符串 A 和 @ 987654327@.

    【讨论】:

    • 我已发送拉取请求并将描述中的单词更改为value 而不是selected。还添加了一个关于如何在打开多个时将键设置为数组的示例。请参阅此 PR github.com/cakephp/docs/pull/2521
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    相关资源
    最近更新 更多