2017-04-05 88 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 –