dhtmlxtree XML ссылается на несуществующий родитель

Я работаю с dhtmlxtree, и у меня возникают проблемы с загрузкой данных из json, переданных ему внешним скриптом. Я получаю сообщение об ошибке ниже. Любые идеи? Спасибо!

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);

Другой пример dhtml JSON (для сравнения):

{ 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>   

person TheRealPapa    schedule 15.01.2014    source источник


Ответы (1)


Вы должны использовать определенный формат JSON, такой же, как в демонстрациях dhtmlx. Однако было бы проще и быстрее использовать dhtmlxConnector (бесплатно для использования с dhtmlx компоненты) вместо пользовательских сценариев. Коннектор помогает генерировать выходные данные XML, и все, что вам нужно, это настроить поля таблицы для дерева XML.

person Paul    schedule 06.03.2014