Код файла 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;