4

データの保存に使用する jstree オブジェクトがあり、ajax を使用してステップごとに完了します。送信するデータに応じて、HTML でフォーマットされたノードを返す ajax.php ファイルを呼び出します。

私の問題は次のとおりです。受信するデータには現在のノードの構造が既に含まれていることがわかっており、現在のノードを ajax 呼び出しから受信したデータに置き換える代わりに、jstree は構造を現在のノードに私が望んでいるものではない新しい息子。

たとえば、ノード 1 をクリックすると、次のようになります。

0
| - 1
| - 2

次の構造を取得します。

0
| - 1
| | - 1
| | | - 1.1
| | | - 1.2
| - 2

ajax 呼び出しの戻り値を変更することはできませんが、現在のノードの子ノードとしてノードを挿入する代わりに、次のコードを使用してノードを戻りデータに置き換えることができると考えました。

$node.jstree({
    "plugins" : [ "themes", "html_data" ],
    "html_data" : {
        ajax: {
            url: "ajax.php",
            data: function(node){
                return {
                    index:  (node != -1) ? node.attr("id") : 0
                };
            },
            type: "POST"
        }
    },
    animated: 'fast'
});

回答ありがとうございます:)

4

1 に答える 1