JQtree JSON данные с PHP и MySQL
Как сгенерировать ответ json на jqtree с помощью php? Я пытался с json_encode, но он оставляет много дополнительных данных. Мне было интересно, если кто-то уже взломал эту дверь.
Как добиться такой структуры:
var data = [
{
label: 'node1',
children: [
{ label: 'child1' },
{ label: 'child2' }
]
},
{
label: 'node2',
children: [
{ label: 'child3' }
]
}
];
Форма MySQL ID, родитель, структура метки?
Любая помощь будет оценена
1 ответ
"Дополнительные данные" в строке json связаны с json_encode и ассоциативным массивом. Если вы попытаетесь использовать json_encode и индексированный массив, вы получите совершенно другую строку json без этих "меток".
Однако jqtree нужен смешанный json с некоторыми "строковыми" ключами и некоторыми "индексными" ключами.
Затем, чтобы получить действительный json для jqtree в PHP, вы должны использовать следующую функцию для вашего результирующего массива из запроса, а после выполнения json_encode для массива эта функция возвращает:
function arrayValuesRecursive($array)
{
$temp = array();
foreach ($array as $key => $value) {
if (is_numeric($key)) {
$temp[] = is_array($value) ? arrayValuesRecursive($value) : $value;
} else {
$temp[$key] = is_array($value) ? arrayValuesRecursive($value) : $value;
}
}
return $temp;
}
Например:
$arrayFromQuery = array(...);
$arrayFromQuery = arrayValuesRecursive($arrayFromQuery);
$jqTreeJSON = json_encode($arrayFromQuery);