Php 从URL加载jqtree和JSON
我想在jqTree中用PHP从服务器加载JSON数据。 我曾经尝试过这样使用“数据url”:Php 从URL加载jqtree和JSON,php,jquery,json,jqtree,Php,Jquery,Json,Jqtree,我想在jqTree中用PHP从服务器加载JSON数据。 我曾经尝试过这样使用“数据url”: $(function() { $('#tree1').tree({ //data: data, dataUrl: 'menu_content.ajax.php', autoOpen: true, ... 由menu_content.ajax.php生成的JSON是: [ { label: 'node1', children: [
$(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应用程序:
在这里使用php JSON:
Firebug说一切正常:在控制台中,没有错误,GET查询给出了OK
非常感谢您的回答。原因是JSON无效 此外,需要注意的是,版本:
var data = [ { label: 'node1', children: [ { label: 'child1' }, { label: 'child2' } ] }, { label: 'node2', children: [ { label: 'child3' } ] } ];
当它直接在javascript代码中使用时可以工作,标签周围也没有引号,但当它作为loadURL参数出现在PHP中时不工作。为此,我们需要一个格式良好的JSON,如:
[
{
"label": "node1",
"children": [
{
"label": "child1"
},
{
"label": "child2"
}
]
},
{
"label": "node2",
"children": [
{
"label": "child3"
}
]
}
]
您必须在phpThanks中将content type设置为
json
,这对您的答案有很大帮助。在我的问题帖子中,我尝试了这两种方法,但都不起作用。