2017-06-20 25 views
0

基本的には、私はキーワードの組み合わせでMySQLクエリから来たデータを持っています。Select2のデータを設定するKartik Optgroup

$result = []; 
foreach ($listNoEstimate as $k => $v) { 
    $result[$v['id']][] = $v['no_surat'] . ' - ' . $v['level']; 
} 

これは、あなたが知っているデータ

print_r($data); 


Array 
(
[1904] => Array 
    (
     [0] => C0005 - A 
    ) 

[16] => Array 
    (
     [0] => E1679 - B 
     [1] => E1679 - C 
    ) 
) 

、SELECT2に、我々はこのような配列としてデータを渡すことができます:

echo $form->field($model, 'state_1')->widget(Select2::classname(), [ 
    'data' => $data, 
]); 

私はこのような必要があります。

<select> 
    <optgroup label = 'C0005'> 
     <option value = '1904'> C0005 - A </option> 
    </optgroup> 

    <optgroup label = 'E1679 '> 
     <option value = '16'> E1679 - A </option> 
     <option value = '16'> E1679 - B </option> 
    </optgroup> 
</select> 

お知らせください。

答えて

0

使用PHP foreach:私はそれをテストしていない

echo '<select>' 
foreach($data as $key => $value){ 
    echo '<optgroup label = '.$value.'>' 
    foreach($value as $v){ 

     echo '<option value="'.$key.'">'.$v.'</option>' 

    } 
    echo '</optgroup>' 
} 

echo '</select>' 

は、あなたがアイデアを得る願っています!

0

更新するforeach

foreach ($listNoEstimate as $k => $v) { 
     $result[$v['no_surat']]['id'] = $v['no_surat'] . ' - ' . $v['level']; 
    } 
関連する問題