1

PHP のサーバーから jqTree に JSON データをロードしたいと考えています。次のように「data-url」を使用しようとしました:

$(function() {
$('#tree1').tree({
    //data: data,
    dataUrl: 'menu_content.ajax.php',
    autoOpen: true,
...

menu_content.ajax.php によって生成された JSON は次のとおりです。

[
    {
        label: 'node1',
        children: [
            {
                label: 'child1'
            },
            {
                label: 'child2'
            }
        ]
    },
    {
        label: 'node2',
        children: [
            {
                label: 'child3'
            }
        ]
    }
]

この JSON を JavaScript コードに直接入れると機能しますが、PHP/JSON の方法では機能しません。ダウンロードした jqtree ファイルの例では、マニュアルにあるように、より複雑な mockjax を使用しています。

リロード機能も機能しません:

$('#tree1').tree('loadDataFromUrl', 'menu_content.ajax.php');

PHP で 2 つの異なるヘッダーを使用しようとしました。

header('Content-Type: text/html; charset=utf-8');
or
header('Content-Type: application/json');

しかし、それはあってもなくても機能しません。

確かに私は何か間違ったことをしているのですが、何がわかりません。

JSON を使用したアプリケーションを JavaScript コードで直接表示できます: http://naeco.free.fr/wfr/editionMenu/menuWilly_JSON-in-file.html および php JSON を使用したアプリケーション: http://naeco.free.fr/ wfr/editionMenu/menuWilly.html

Firebug は、すべて問題ないと言っています: コンソールでは、エラーはなく、GET クエリは問題ありません。

あなたの答えに感謝します。

4

1 に答える 1

1

説明は、JSON が無効だったということです。

また、バージョンに注意することも重要です:

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

JavaScriptコードで直接、ラベルを引用符なしで使用する場合は機能しますが、loadURLパラメーターとしてPHPを使用する場合は機能しません。このためには、整形式の JSON が次のように必要です。

[
{
"label": "node1",
"children": [
{
"label": "child1"
},
{
"label": "child2"
}
]
},
{
"label": "node2",
"children": [
{
"label": "child3"
}
]
}
]
于 2014-05-25T12:17:55.023 に答える