CakePHP多选"选中"不起作用

Joh*_*Doe 12 cakephp-1.3

我的编辑表单中有多个选择输入: -

<?php echo $this->Form->input('Article.tags', array('type' => 'select', 'multiple' => true, 'options' => $tags, 'selected' => array($selected))); ?>
Run Code Online (Sandbox Code Playgroud)

当回显时,$selected变量将如下所示: -

"MySQL", "PHP"
Run Code Online (Sandbox Code Playgroud)

但是,输入不会自动选择与标记匹配的选项.

但是,当我手动输入所选的选项时,它会自动选择那两个选项; 例如

<?php echo $this->Form->input('Article.tags', array('type' => 'select', 'multiple' => true, 'options' => $tags, 'selected' => array("MySQL", "PHP"))); ?>
Run Code Online (Sandbox Code Playgroud)

有没有什么办法解决这一问题?谢谢.

Joh*_*Doe 16

啊,我解决了这个问题.

我看错了方向.我假设所选的值应该是字符串形式,引号和逗号分隔.(例如"MySQL","PHP","jQuery").

相反,它应该是数组格式,没有任何引号和逗号.例如

Array
(
    [0] => MySQL
    [1] => PHP
    [2] => jQuery
)
Run Code Online (Sandbox Code Playgroud)

一旦我将数组整理出来,我将其传递给视图; 例如$ this-> set('selected',$ myArray);

然后在表格上,我只需要像这样回应: -

<?php echo $this->Form->input('Article.tags', array('type' => 'select', 'multiple' => true, 'options' => $tags, 'selected' => $selected)); ?>
Run Code Online (Sandbox Code Playgroud)


小智 5

使用默认关键字:

<?php echo $this->Form->input('Article.tags',array('options'=>$tags,'type'=>'select','label'=>'TDSP','class'=>'distributeSelect','multiple'=> 'true','default' => $selected));?>
Run Code Online (Sandbox Code Playgroud)