У меня проблема с форматированием данных JSON для JQuery JsTree. У меня есть много детей, которые я хотел бы показать в корневой папке. Однако, когда я не могу понять, как перебрать все дочерние элементы. Следующий код печатает только 1 элемент из массива children. Я хотел бы распечатать все элементы детей.
$children = [];
foreach ($items as $item) {
$children['id'] = $item['id'];
$children['text'] = $item['title'];
}
$data = [
'id' => 1,
'text' => 'Root',
'children' => $children
];
echo json_encode($data);
Приведенный выше код выдает следующий результат:
{
"id":1,
"text":"Root",
"children":{
"id":"0B_J9f9IAYIKQczFkUERDUHpBYmc",
"text":"Complete Thesis.doc"}
}
Я понял это сам, назначив пустой массив с помощью ключа массива. Вот как я это сделал:
<?php
$children = [];
foreach ($items as $item => $value) {
$children[$item]['id'] = $value['id'];
$children[$item]['text'] = $value['title'];
}
$data = ['id' => 1, 'text' => 'Root',
'children' => $children
];
echo json_encode($data);
Приведенный выше код возвращает следующий результат в виде отформатированной строки JSON для JsTree:
{"id":1,"text":"Root","children":[{"id":"0B_J9f9IAYIKQemNzVzBhNDg2elE","text":"New Folder"},{"id":"0B_J9f9IAYIKQdkktWEREaHVLMUk","text":"New Folder"},{"id":"0B_J9f9IAYIKQX3pjUU5FTDBkUlE","text":"Erin VZBakker 4 thisis.pdf"},{"id":"0B_J9f9IAYIKQczFkUERDUHpBYmc","text":"Complete Thesis.doc"}]}
Других решений пока нет …