伙计我正在使用嵌套菜单,当客户端移动某个项目时,我正尝试通过API进行更新。我正在使用这个jquery插件http://johnny.github.io/jquery-sortable/ 这个插件有onDrop方法:
$(function () {
var group = $("ol.serialization").sortable({
group: 'serialization',
onDrop: function (item, container, _super) {
var data = group.sortable("serialize").get();
var jsonString = JSON.stringify(data, null, ' ');
console.log(jsonString);
//var jsonString = { name: "John", time: "2pm" };
$.post( "http://local.api/v1.0/SL-TEST-API-KEY/AbstractBookMenu/", jsonString , function (res) {
console.log(res);
});
_super(item, container)
}
});
});
我的api目前有这个代码:
Flight::route('POST /v1.0/@key/AbstractBookMenu/', function($key){
Flight::set('ACCOUNT', Flight::auth()->check(Flight::request(), Flight::get('EVENTLOGIC'), $key));
$account = Flight::get('ACCOUNT');
print_r($_POST);
die();
});
我想确保收到我的发布数据,当我在控制台中打印res响应时我收到了一个空数组。但是,如果我试图在控制台中看到变量jsonString中的数据,我可以看到:
[
[
{
"id": 22,
"position": 0,
"children": [
[
{
"id": 21,
"position": 0,
"children": [
[]
]
},
{
"id": 24,
"position": 0
},
{
"id": 29,
"position": 0
}
]
]
},
{
"id": 25,
"position": 0,
"children": [
[]
]
},
{
"id": 26,
"position": 0,
"children": [
[
{
"id": 27,
"position": 0
}
]
]
},
{
"id": 45,
"position": 30,
"children": [
[]
]
}
]
]
例如,如果我尝试使用我的注释代码
var jsonString = { name: "John", time: "2pm" };
我的API回复是:
Array
(
[name] => John
[time] => 2pm
)
即便如此,如果我尝试替换所有我的json数据[[{“id”:21,“position”:0,“children”:...我收到此回复:
Array
(
[undefined] =>
)
我不确定我做错了什么。如何在我的API中获取此数据?有什么建议吗?
答案 0 :(得分:2)
你应该在最外层有一个对象,如下所示:
{
"mydata": [[{"id" ... // your data goes here
}