jqtree - данные JSON не определены - PullRequest
1 голос
/ 06 октября 2011

Я пытаюсь реализовать http://mbraak.github.com/jqTree/ через JSON.

Это функция, которую я вызвал в <head>:

jQuery(document).ready(function(){
    $.getJSON('../controller/das/dus.php',
                        function(data) {
                            $('#tree1').tree({
                                data:data
                        });

                    });
});

Мой php файл:

<?php session_start();
header('Content-type: application/json');

require_once '../../model/getdata.php';

        $sql = 'SELECT * FROM slode';
        $stmt = getaccessdata::getInstance()->prepare($sql);
        $stmt->execute();
        $array = $stmt->fetchAll( PDO::FETCH_ASSOC );
        $json = json_encode( $array );

        echo $json ;
?> 

Это файлы JavaScript, которые я вставил:

<!-- jquery -->
<link rel="stylesheet" href="style/jquery/jquery-ui-1.8.14.custom.css" />
<script type="text/javascript" src="js/jquery/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="js/jquery/jquery-ui-1.8.16.custom.min.js"></script>

<!-- jqTree -->
<script type="text/javascript" src="js/jqtree/tree.jquery.js"></script>
<link rel="stylesheet" href="style/jqtree/jqtree.css" />

Это данные JSON:

[{"id":"1","stand":"Civ","cat":"cat1","stand":"100","savedate":"2011-03-29 18:53:47","cap":"150"},{"id":"2","stand":"asdasd","cat":"cat2","stand":"120","savedate":"2011-03-29 18:53:47","cap":"150"},{"id":"3","stand":"asdasd","cat":"cat3","stand":"80","savedate":"2011-03-29 18:53:47","cap":"250"},{"id":"4","stand":"asdasd","cat":"cat4","stand":"300","savedate":"2011-03-29 18:53:47","cap":"350"},{"id":"5","stand":"asdasd","cat":"cat5","stand":"450","savedate":"2011-03-29 18:53:47","cap":"450"},{"id":"6","stand":"asdasd","cat":"cat6","stand":"40","savedate":"2011-03-29 18:53:47","cap":"550"}] 

Я действительно не знаю, что я делаю неправильно. Всегда отображается «неопределенное», где должны быть данные.

Я не знаю, как реализовать древовидную структуру и как она отображается в jqtree. (json разобрать в jqtree?)

желаемый результат: если "stand" одинаков в разных данных json, он должен создать новую метку, а cat следует использовать как дочерние:

-Civ (=label)
--cat1 (=children)


-asdasd (=label)
--cat2 (=children)
--cat3 (=children)
--cat4 (=children)
--cat5 (=children)
--cat6 (=children)

Как я могу преобразовать мои данные JSON в эту структуру:

    var data = [
    {
        label: 'node1',
        children: [
            { label: 'child1' },
            { label: 'child2' }
        ]
    },
    {
        label: 'node2',
        children: [
            { label: 'child3' }
        ]
    }
];

Ответы [ 2 ]

1 голос
/ 18 ноября 2011

Формат JSON должен быть следующим:

    var data = [
    {
        label: 'node1',
        children: [
            { label: 'child1' },
            { label: 'child2' }
        ]
    },
    {
        label: 'node2',
        children: [
            { label: 'child3' }
        ]
    }
];

, что означает, что в вашем массиве должны быть метка и дочерние элементы, вы также можете помещать другие вещи, но они ДОЛЖНЫ

0 голосов
/ 06 октября 2011

Причина в том, что вы предполагаете вернуть json в правильном формате, как этот

    {
    "0": {
        "id": "1",
        "stand": "100",
        "cat": "cat1",
        "savedate": "2011-03-29 18:53:47",
        "cap": "150"
    },
    "1": {
        "id": "2",
        "stand": "120",
        "cat": "cat2",
        "savedate": "2011-03-29 18:53:47",
        "cap": "150"
    },
    "2": {
        "id": "3",
        "stand": "80",
        "cat": "cat3",
        "savedate": "2011-03-29 18:53:47",
        "cap": "250"
    },
    "3": {
        "id": "4",
        "stand": "300",
        "cat": "cat4",
        "savedate": "2011-03-29 18:53:47",
        "cap": "350"
    },
    "4": {
        "id": "5",
        "stand": "450",
        "cat": "cat5",
        "savedate": "2011-03-29 18:53:47",
        "cap": "450"
    },
    "5": {
        "id": "6",
        "stand": "40",
        "cat": "cat6",
        "savedate": "2011-03-29 18:53:47",
        "cap": "550"
    }
}

Среднее значение ключа: пара значений для вашего json

Вы можете проверить свой файл json здесь http://jsonlint.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...