我想在jqTree中从PHP中的服务器加载JSON数据。 我试图像这样使用“data-url”:
$(function() {
$('#tree1').tree({
//data: data,
dataUrl: 'menu_content.ajax.php',
autoOpen: true,
...
和menu_content.ajax.php生成的JSON是:
[
{
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');
但它无论是否有效。
我确定我做错了什么,但我看不出是什么。
我们可以在javascript代码中直接看到带有JSON的应用程序: http://naeco.free.fr/wfr/editionMenu/menuWilly_JSON-in-file.html 和PHP JSON在这里: http://naeco.free.fr/wfr/editionMenu/menuWilly.html
Firebug说一切正常:在控制台中,没有错误,并且GET查询给出了一些正常的信息。
非常感谢您的回答。
答案 0 :(得分: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"
}
]
}
]