所以我有一个包含许多JSON对象的数组,如果我输出我的数组,这就是它在console.log中显示的内容:
{"data" :[{"line":"1","band":"X","val":"0"},{"line":"1","band":"A","val":"6461"},{"line":"1","band":"B","val":"6896"},{"line":"1","band":"C","val":"5826"},{"line":"1","band":"D","val":"3704"},{"line":"1","band":"E","val":"2141"},{"line":"1","band":"F","val":"1198"},{"line":"1","band":"G","val":"682"},{"line":"1","band":"H","val":"70"},{"line":"2","band":"X","val":"0"},{"line":"2","band":"A","val":"87"},{"line":"2","band":"B","val":"65"},{"line":"2","band":"C","val":"48"},{"line":"2","band":"D","val":"35"},{"line":"2","band":"E","val":"12"},{"line":"2","band":"F","val":"14"},{"line":"2","band":"G","val":"4"},{"line":"2","band":"H","val":"0"},{"line":"3","band":"X","val":"0"},{"line":"3","band":"A","val":"0"},{"line":"3","band":"B","val":"0"},{"line":"3","band":"C","val":"0"},{"line":"3","band":"D","val":"0"},{"line":"3","band":"E","val":"0"},{"line":"3","band":"F","val":"0"},{"line":"3","band":"G","val":"0"},{"line":"3","band":"H","val":"0"}]}
returnObj在上面输出。这就是我如何构建数组以回发到laravel
$('table tr td input').each(function()
{
Obj =
{
line : $(this).parent().attr('line'),
band : $(this).parent().attr('band'),
val : $(this).val()
}
returnObj.push(Obj);
});
returnObject = '{"data" :' + JSON.stringify(returnObj) +'}';
console.log(returnObject);
这是我在页面上的ajax:
$.ajax({
type: "POST",
url: "magic/whatif",
data : returnObject
})
.done(function(response)
{
alert(response);
});
我的路由或逻辑没有问题,我只是print_r或回显作为响应传入的数据,所以我可以看到laravel对它做了什么。
$data = Input::all();
print_r($data);
问题是laravel无法处理对象数组,所以它发送回来:
Array ( [undefined] => )
有许多解决方案,当你将一个JSON对象传递给laravel但我需要将包含许多JSON对象的数组传递给laravel时,我才能使用它。
答案 0 :(得分:1)
更改以下行:
returnObject = '{"data" :' + JSON.stringify(returnObj) +'}';
对此:
returnObject = { returnObj : returnObj };
您可以使用以下方式访问该数据:
$data = Input::get('returnObj');
输出(转储和死亡):
dd($data);