PHP - 将数组传递给JSON - JSTree

时间:2016-09-19 13:55:35

标签: php json ajax

在尝试在AJAX调用中传递JSON数组时,我遇到了一个单调乏味的问题。我试图根据JSTree要求的格式将链接属性添加到数组中....

这可行...不使用单独的php文件......

$('#jstree').jstree({
    'core' : {
        'data' : [{"id":"1","name":"services","text":"Services","parent_id":"0","a_attr":{"href":"www.google.com"}}]
    }    
}); 

但是在使用PHP文件时...

$('#jstree').jstree({
    'core' : {
        'data' : {
            'url' : "response.php", 
            'data' : function (node) {
                return { 'id' : node.id };
            },
            "dataType" : "json"
        }
    },
}); 

php文件......

$sql = "SELECT * FROM `tree`";
$res = $mysqli->query($sql);
while($row = $res->fetch_assoc()) { 
    $row['a_attr']->href =  "www.google.com";
    $data[] = $row;
}
echo json_encode($data);

这产生了以下结果..

[{"id":"1","name":"services","text":"Services","parent_id":"0","a_attr":{"href":"www.google.com"}}]

这正是我想要的但是...... jstree不接受这个......

当我删除代码中的a_attr添加...它可以工作,但显然我不再需要数组中的attr ... 检查PHP文件上的json输出时..我收到一条警告消息:

警告:在第15行的C:\ xampp \ htdocs \ noc \ response.php中从空值创建默认对象

但如果有人愿意帮助我,我会毫无头绪并需要一些帮助......

0 个答案:

没有答案