![](/img/trans.png)
[英]Laravel 5.3 Ajax - Retrieve data sent in the ajax request from the controller
[英]How to extract data in laravel controller from object array in HTTP request passed via ajax
我在laravel 5.2中开发POS系统。从我的销售页面中,我要发送一个包含1个帐单信息对象和1个产品列表对象数组的数组。我的控制器正确接收了数据,但我不知道如何提取他们在我的控制器。我已经通过laravel文档和PHP。
我努力了。
$data = $request->all();
$billinfo = $data[0]->total;
$productlist=$data[1];
我也尝试过
$billinfo = $data[0]->object->total;
我也尝试过
$billinfo = $data[0]->object[0]->total;
我也尝试过
$billinfo = $data[0]->bill->total;
如果我再次将请求发送到这样的视图:
$data = $request->all();
return json_encode($data);
然后在consol中打印响应。consol提供以下输出:
Object {id: Array[2]}
>id:
>Array[2]
0:Object
card_number:"0"
customer_id:"0"
date:"06/18/2016"
discount:"0"
grandtotal:"563.5"
payment_method:"cash"
seller_id:""
tax:"15"
total:"490"
__proto__:Object
1:Array[2]
0:Object
stock_id:"5"
subtotal:"244"
unit:"2"
unit_price:"122"
__proto__:Object
1:Object
stock_id:"4"
subtotal:"246"
unit:"2"
unit_price:"123"
我的ajax发送功能是
function ajaxsave(obj)
{
var token=$('input[name=_token]').val();
var baseUrl=document.getElementById("baseUrl").value;
var url=baseUrl+"/sales/savecart";
var id=obj;
$.ajax({
type: "GET",
headers: {'X-CSRF-TOKEN': token},
url:url,
data: {id:id},
datatype:'json',
success: function(data) {
var returndata =JSON.parse(data);
console.log(returndata);
}
});
}
我正在尝试学习laravel。 这是我的第一个项目。 请帮忙 !!!
我认为如果我返回var_dump($ request-> all()),这就是Network XHR的输出
array(1) {
["id"]=>
array(2) {
[0]=>
array(9) {
["customer_id"]=>
string(1) "0"
["seller_id"]=>
string(0) ""
["date"]=>
string(10) "06/18/2016"
["payment_method"]=>
string(4) "cash"
["card_number"]=>
string(1) "0"
["total"]=>
string(3) "244"
["discount"]=>
string(1) "0"
["tax"]=>
string(2) "15"
["grandtotal"]=>
string(5) "280.6"
}
[1]=>
array(1) {
[0]=>
array(4) {
["stock_id"]=>
string(1) "5"
["unit"]=>
string(1) "2"
["unit_price"]=>
string(3) "122"
["subtotal"]=>
string(3) "244"
}
}
}
}
Ahdaf,至Julqas,需要在发送数据之前先查看数据转储,即JSON数据的格式如何。 就是说,我怀疑您的问题是JSON格式问题,即您可能正在向Laravel发送数组,例如,您正在发送var billinfo = ["id", [... data]];
Laravel会假设是原始数据。
您可以通过PHP GET等提取它,效果很好,但是如果您期望Laravel魔术,则需要确保您发送的是Laravel JSON,例如var billing = {id: 1, record: {id:1, name: 'bob'};
即JSON。 Laravel将对此进行解码,并且$ request-> all()将正常运行。 另外,如果您需要发送JS数据数组,则var billingInfo = {id:1,arrayOfData:[...]}
如果PS Laravel收到AJAX请求,它将返回一个JSON对象,因此console.log(...)将显示JSON,但这并不意味着您要发送格式正确的JSON。
工作格式示例
var billingInfo = {id: 1, email: "person@msn.com", name: "Bob", card: "4448"}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.