0

ajax 呼び出しオプションを使用して FancyTree ツリーを作成しているときに問題が発生しました。ページとツリー データのソースは、Oracle 10 データベースの PL/SQL パッケージです。呼び出しtree_test.show_pageて、この単純なテスト ページを表示するために使用htp.pします (わかりやすくするためにスクリプト リンクは削除されています)。

<html>
<head>
<title>Tree Testing</title>
<script type="text/javascript">

  $(function() {
    // Create the tree inside the <div id="tree"> element.
    $("#tree").fancytree({
      checkbox: true, // Show checkboxes.
      debugLevel: 2,  // 0:quiet, 1:normal, 2:debug
      selectMode: 3,  // 1:single, 2:multi, 3:multi-hier
      source: {
        url: "tree_test.get_tree",
        dataType: "json",
        cache: true
      }
    }); // end of fancytree def
  });
</script>
</head>
<body>
<p>Tree structure:</p>
<div id="tree"></div>
</body>
</html>

ツリーは表示されませんが、Chrome デバッガーで呼び出しtest_tree.get_treeが成功した場所を確認できます。問題は、文字列応答が JSON データとして表示されていないことだと思います。var treeData = <JSON data here>FancyTreesourceパラメーターを追加して に変更すると、正常source: treeDataに動作するため、データが適切であることはわかっています。sourceまた、パラメータの構成方法に関係なく、同じPL/SQLプロシージャによってツリー・データが提供されます。

Chrome デバッガーでは、応答のコンテンツ タイプがtext/htmlとして表示されます(以下の編集を参照)。dataTypeパラメータにさまざまな値(「json」、「html json」、「text json」、「html text json」など)を試しましたが、成功しませんでした。

明らかな何かが欠けていますか??

以下は、サンプルの JSON データです。

[{title: "Root Group", key: "g0", folder: true, expanded: true, children: [{title: "Group 1", key: "g1", folder: true, expanded: true, children: [{title: "Node 1", key: "141", tooltip: "Node 1"},{title: "Node 2", key: "82", tooltip: "Node 2"}]},{title: "Group 2", key: "g2", folder: true, expanded: true, children: [{title: "Node 3", key: "91", tooltip: "Node 3"}]}]}]

編集:
Yogi の提案によりowa_util.MIME_HEADER('application/json', true)、手順に追加したところtree_test.get_tree、応答のコンテンツ タイプがapplication/jsonChrome のデバッガーのように表示されるようになりました。しかし、ツリーにはまだデータが取り込まれていません。

4

1 に答える 1

0

これは有効な JSON データではなく、JavaScript オブジェクトのダンプです。

[{title: "Root Group", key: "g0", folder: true, expanded: true, children: [{title: "Group 1", key: "g1", folder: true, expanded: true, children: [{title: "Node 1", key: "141", tooltip: "Node 1"},{title: "Node 2", key: "82", tooltip: "Node 2"}]},{title: "Group 2", key: "g2", folder: true, expanded: true, children: [{title: "Node 3", key: "91", tooltip: "Node 3"}]}]}]

そのはず

[{"title": "Root Group", "key": "g0", "folder": true, ...

http://json.org/を参照

于 2014-07-10T17:04:39.180 に答える