Загрузка узлов в JIT SpaceTree

Я пытаюсь использовать SpaceTree из JIT, и мне действительно нужна помощь. Проблема в том, когда пытаются загрузить дерево из другого массива.

json.php

<?php
$temp = array(
    'id' => "node02",
    'name' => "roey",
    'data' => '',
    'children' => json_encode(array(
        'id' => "node13",
        'name' => "Some Node",
        'data' => '',
        'children' => '',

    )),
);
echo json_encode($temp);

мой spacetree.js:

....
function init(){
$.getJSON('json.php', function(json){
    var json = json;
....
st.loadJSON(json);

JSON, который я получаю, как и ожидалось, но скрипт не загружает его.

Кто-нибудь видит проблему и может мне помочь с этим?

2 ответа

  1. Удалите из своего кода "var json = json". Переменная json уже объявлена ​​в этой функции.
  2. Если "st.loadJSON(json);" не в функции (JSON){ваш код}. Переменная json является локальной для функции, и на нее можно ссылаться только в объявленной ей функции.

Я столкнулся с той же проблемой, JIT SpaceTree использует массив массивов для ключа дочерних элементов, массив php должен быть таким

`<?php
$temp = array(
'id' => "node02",
'name' => "roey",
'data' => '',
'children' => array(array(
    'id' => "node13",
    'name' => "SomeNode",
    'data' => '',
    'children' =>array(),
),array(
    'id' => "node14",
    'name' => "SomeNode",
    'data' => '',
    'children' =>array(),
),
)
);
echo json_encode($temp);
?>`

надеюсь, это поможет и сэкономит время 4 другим:)

Другие вопросы по тегам