复选框列表未正确选中复选框

时间:2017-04-05 19:05:31

标签: yii2

我有一个两个数组,我将它们包含在一个复选框中,

echo Html::checkboxList('item', $selectedItem, $dataItem, [
                'item' => function($index, $label, $name, $checked, $value) {
                       return "<label class='col-md-2'>
                            <input type='checkbox' {$checked} name='{$name}' value='{$value}'>
                                <span>{$label}</span>
                               </label>";
                        }
                    ]);

我在浏览器中的代码中看到如下:

<label class="col-md-2">
       <input 1="" name="item[]" value="1" disabled="" type="checkbox">
      <span>Login</span>
</label>

选中的呈现为1=""

请告知。

更新

$的DataItem

E:\wamp64\www\yii_tresnamuda\modules\it\views\request\preview.php:128:
   array (size=6)
    1 => string 'Login' (length=5)
    2 => string 'Printer' (length=7)
    3 => string 'Monitor' (length=7)
    4 => string 'Computer' (length=8)
    5 => string 'Network' (length=7)
    6 => string 'Lain Lain' (length=9)

$ selectedItem属性

E:\wamp64\www\yii_tresnamuda\modules\it\views\request\preview.php:129:
  array (size=2)
    2 => int 2
    1 => int 1

1 个答案:

答案 0 :(得分:3)

问题出在{$checked}模板的item元素中。试试这个:

echo Html::checkboxList('item', $selectedItem, $dataItem, [
  'item' => function($index, $label, $name, $checked, $value) {
    return "<label class='col-md-2'>
      <input type='checkbox' name='{$name}' value='{$value}' ".($checked ? 'checked' : '').">
        <span>{$label}</span>
     </label>";
    }
]);

此外,我认为您必须将$selectedItem规范表单[2=>2, 1=>1]更改为[2,1]