jqtree и JSON загружаются с URL
Я хочу загрузить данные JSON с сервера в PHP в jqTree . Я попытался использовать "data-url", как это:
$(function() {
$('#tree1').tree({
//data: data,
dataUrl: 'menu_content.ajax.php',
autoOpen: true,
...
и JSON, сгенерированный menu_content.ajax.php:
[
{
label: 'node1',
children: [
{
label: 'child1'
},
{
label: 'child2'
}
]
},
{
label: 'node2',
children: [
{
label: 'child3'
}
]
}
]
Когда я помещаю этот JSON непосредственно в код JavaScript, он работает, но не работает с PHP/JSON. В примере в загруженном файле jqtree используется mockjax, более сложный, как сказано в руководстве.
Функция перезагрузки тоже не работает:
$('#tree1').tree('loadDataFromUrl', 'menu_content.ajax.php');
Я попытался использовать два разных заголовка в PHP:
header('Content-Type: text/html; charset=utf-8');
or
header('Content-Type: application/json');
Но это не работает с и без.
Конечно, я делаю что-то не так, но я не вижу, что.
Мы можем увидеть приложение с JSON непосредственно в коде JavaScript здесь: http://naeco.free.fr/wfr/editionMenu/menuWilly_JSON-in-file.html и с php JSON здесь: http://naeco.free.fr/wfr/editionMenu/menuWilly.html
Firebug говорит, что все в порядке: в консоли нет ошибок, а запрос GET дает что-то в порядке.
большое спасибо за ответ.
1 ответ
Объяснение состоит в том, что JSON был недействительным.
Также важно отметить, что версия:
var data = [ { label: 'node1', children: [ { label: 'child1' }, { label: 'child2' } ] }, { label: 'node2', children: [ { label: 'child3' } ] } ];
работать, когда это прямо в коде javascript, также без кавычек вокруг метки, но не работать, когда речь идет о PHP в качестве параметра loadURL. Для этого нам нужен правильно сформированный JSON:
[
{
"label": "node1",
"children": [
{
"label": "child1"
},
{
"label": "child2"
}
]
},
{
"label": "node2",
"children": [
{
"label": "child3"
}
]
}
]