我有一个两个数组,我将它们包含在一个复选框中,
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
答案 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]