Код файла json для Select2, для получения форматирования с optgroup
Перейти к навигации
Перейти к поиску
Пришлось как то с этим разбираться, выкладываю тут код, что бы потом найти было проще.
$out = []; $q = !empty($_GET['q']) ? $_GET['q'] : ''; $group = [ 2 => 'Бесплатно', 1 => 'РПН', 0 => 'Платно', ]; $result = $GLOBALS['db']->mysqli_qw('SELECT a.cod, a.name, a.rpn, a.type FROM dictionarys a WHERE a.dictionary=13 AND a.islast=1 AND a.name like ? ORDER BY a.`order`', '%' . $q . '%'); if (mysqli_num_rows($result) == false) { $out = array(array("id" => 0, "text" => 'Нет целей')); } else { $i = 0; $b = 0; $gr = ''; while ($row = mysqli_fetch_array($result)) { if ($gr && $gr != $row['rpn']) { $i++; $b = 0; } $out[$i]['text'] = $group[$row['rpn']]; $out[$i]['children'][$b]['id'] = $row['cod']; $out[$i]['children'][$b]['text'] = $row['name']; $gr = $row['rpn']; $b++; } } $out5 = json_encode($out); echo $out5;