2017-04-05 63 views
0

我有两个数组,我将它们包括到一个复选框,的CheckBoxList不渲染选中复选框正确

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=""

请指教。

UPDATE

$ 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

帖子''$ selectedItem'和'$ dataItem' – gmc

回答

3

的问题是在你的item模板您{$checked}元素。试试这个:

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]

+0

致谢var_dump',工作。首先,我会分析你的评论,然后我得到它为什么有效。 GBU –