0
以下のjsTreeを使用して最初のルートノードをロードすることができません: データはサーバー上にあり、選択された各ノードごとにAJAX経由で '買取'する必要があります。私はまた、チェックボックスを使用して、選択されたノードのすべての親ノードの値を取得したい。今jsTreeがAJAXコールからルートノードをロードできません
主な問題は次のとおりです。私は、ルート・ノードをリストすることはできませんよ....
//jsTree
$('#testTree').jstree({
'core' : {
'data' : {
'url' : function (node) {
return node.id === '#' ?
'/cgi-bin/test.pl' //url for root nodes
'/cgi-bin/test.pl?nodes-in-selected-heirarchy'; //url for children nodes
},
'data' : function (node) {
console.log('node.id='+node.id);
return { 'id' : node.id };
}
}
}
});
はすべて、これが表示されていること、フォルダのアイコンです。
私は、サーバーから取得していますJSON
は次のとおりです。
{"5":"summer","8":"vacation","2":"2015","3":"2014","4":"2013","6":"winter","1":"2016","7":"birthday"}
それはkey:value,
形式です。ここで
新しい変更されたコードです:でも、これは動作しません...
$('#test').jstree({
'core': {
'data':{ //this is the data provided to the jsTree to draw the tree.
'url': function(node){
if(node.id === '#'){
console.log('1');
return "/cgi-bin/test.pl";
} else {
console.log('2');
return "/cgi-bin/test.pl?jsTreeParentKey=" + node.data("key");
}
},
'data': function(node) { //the data sent to the server
console.log('node.id='+node.id);
return {
'id': node.id,
'xyz': 'value_xyz' //extra set of param=value sent to server
};
},
'success': function (retData) {
data = [];
for(indx in retData){
var value = retData[indx]
console.log('indx=i'+indx+', value='+value);
node = {
'id' : 'i'+indx,
'text' : value,
'icon' : '/',
//'metadata' : value,
'state' : {'opened' : false} //'state' : 'closed'
}
data.push(node);
}
return data;
}
// "check_callback" : true
}
},
"checkbox" : {
"keep_selected_style" : false
},
"plugins" : [ "checkbox","json_data" ]
});
私は、ログにこれを取得する:
1 <---- from URL
node.id=# <----from param sent
indx=i1, value=2016
indx=i2, value=2015
indx=i3, value=2014
indx=i4, value=2013
indx=i5, value=summer
indx=i6, value=winter
indx=i7, value=birthday
indx=i8, value=vacation
こんにちはイワン、見直しのためのLOT thankx !!はい、私のデータは(そして私はそれが(キー、値)のペアとして来ることを好む)です。しかし、私は '成功'のルーチンはそれを使用して、それをプラグインに処理する前に必要なデータフォーマットを作成して、 'ツリーを構築するためのデータ'と思っていました。それじゃない?なぜなら、 '成功'ルーチンで構築されたデータ配列は、(任意の)与えられた 'ノード'のためにウェブサイト上の要件に一致しているからです。サーバーからのデータ(キー、値のペア)が、どのようにしてそれがpluiginに配信される前に処理されるのか、親切にアドバイスしますか? – rajeev
私はプラグインが成功ルーチンをサポートしていないことを他のところで発見しました。だから、私はdataFilterを試してみましょう(これは「成功」の一種ですか?) – rajeev