2014-01-15 19 views
0

我正在使用dhtmlxtree,並且在從外部腳本向Json提供數據時遇到問題。我收到下面的錯誤。有任何想法嗎?謝謝!dhtmlxtree XML指不存在的父親

ErrorType: LoadXML 
Error: Incorrect JSON 

我的HTML看起來像這樣:

<body> 
    <div id="treeBox" style="width: 200px; height: 200px; overflow: auto;"></div> 
    <script> 
    jQuery(document).ready(function() { 
     tree = new dhtmlXTreeObject("treeBox", "100%", "100%", 0); 
     tree.setSkin('dhx_skyblue'); 
     tree.setImagePath("../sma-js/dhtmlxtree/img/csh_bluebooks/"); 
     tree.setXMLAutoLoading("sma-php/loadcustomers.php"); 
     tree.setDataMode("json"); 
     //load first level of tree; 
     tree.loadJSON("sma-php/loadcustomers.php?id=PNR0000000001"); 
    }); 

當我手動運行該腳本時,JSON返回這個樣子的:

[{"phys_addr_state":"ACT","phys_addr_postcode":"2167","install_address":"2 Eade Street - Radiative, John"},{"phys_addr_state":"NSW","phys_addr_postcode":"2263","install_address":"69 The Corso - Flare, Steve"}, {"phys_addr_state":"NSW","phys_addr_postcode":"2112","install_address":"17 Price Street - Solar, Anita"},{"phys_addr_state":"QLD","phys_addr_postcode":"4001","install_address":"71 Eagle Street - Corona, Linda"},{"phys_addr_state":"VIC","phys_addr_postcode":"3053","install_address":"15 Lygon Street - Photon, Marco"}] 

我注意到的問題是結構/層次我的JSON。它包含每條記錄的項目,我在dhtml站點中看到的其他示例顯示「分層」JSON記錄。我的服務器上的編碼是通過做:

echo json_encode($data); 

JSON(比較)的另一DHTML的例子是:

{ id: 0, item: [{ id: 1, text: "1111" }, { id: 2, text: "222222", item: [{ id: "21", text: "child" }] }, { id: 3, text: "3333" }]} 

是否有不同的方式來編碼SQL記錄,其中的相同的所有記錄狀態將按照上述每個示例的「id:2項以上」的相同條目分組在一起?

我的頭包括以下內容:

<script src="../sma-js/d3.v3/d3.v3.min.js" charset="utf-8"></script> 
<link rel="stylesheet" type="text/css" href="../sma-js/dhtmlxtree/css/dhtmlxtree.css"> 
<script src="../sma-js/dhtmlxtree/js/dhtmlxcommon.js"></script> 
<script src="../sma-js/dhtmlxtree/js/dhtmlxtree.js"></script> 
<script src="../sma-js/dhtmlxtree/js/dhtmlxtree_json.js"></script> 

回答

0

您應該使用特定的JSON格式,一樣DHTMLX演示。但是,使用dhtmlxConnector(免費使用dhtmlx組件)而不是自定義腳本會更容易,更快速。 Connector有助於生成XML輸出,並且您需要的僅僅是爲樹XML設置表字段。