Jquery 将阵列ajax数据传递给laravel v7控制器
我有一个问题,将序列化数组数据Ajax Post传递给控制器最终会产生我意想不到的结果 目标是在键入所有数据后,在提交时,将数据传递到serializeArray(),然后在每个函数中成为适当的数组。然后通过Ajax Post将其发送到控制器 下面是代码示例除了表单之外,不是全部内容。显示代码后继续 Ajax之前的表单示例(当我开始使用Ajax时,我删除了操作) 我从console.log获得的信息Jquery 将阵列ajax数据传递给laravel v7控制器,jquery,ajax,laravel,Jquery,Ajax,Laravel,我有一个问题,将序列化数组数据Ajax Post传递给控制器最终会产生我意想不到的结果 目标是在键入所有数据后,在提交时,将数据传递到serializeArray(),然后在每个函数中成为适当的数组。然后通过Ajax Post将其发送到控制器 下面是代码示例除了表单之外,不是全部内容。显示代码后继续 Ajax之前的表单示例(当我开始使用Ajax时,我删除了操作) 我从console.log获得的信息 {userid: "1", grn_number: "111111
{userid: "1", grn_number: "111111", supplier_id: "2", delivery_order_name: "1111111111", delivery_order_date: "2020-11-18", …}
delivery_order_date: "2020-11-18"
delivery_order_name: "1111111111"
grn_number: "111111"
products[0][id]: "110"
products[0][qty]: "1"
products[0][serial]: "111;
↵"
products[1][id]: "113"
products[1][qty]: "1"
products[2][id]: "114"
products[2][qty]: "1"
products[2][serial]: "111;
↵"
supplier_id: "2"
userid: "1"
控制器中显示了什么
array:1 [
"data" => array:8 [
"userid" => "1"
"grn_number" => "111111"
"supplier_id" => "2"
"delivery_order_name" => "1111111111"
"delivery_order_date" => "2020-11-18"
"products[0" => array:3 [
"id" => "110"
"qty" => "1"
"serial" => "111;"
]
"products[1" => array:2 [
"id" => "113"
"qty" => "1"
]
"products[2" => array:3 [
"id" => "114"
"qty" => "1"
"serial" => "111;"
]
]
]
如您所见,上述产品[#]有“]”切割
在使用Jquery Ajax发送数据之前,我使用普通的routing post表单传递数据
事实上,我希望它是怎样的
array:1 [
"data" => array:8 [
"userid" => "1"
"grn_number" => "111111"
"supplier_id" => "2"
"delivery_order_name" => "1111111111"
"delivery_order_date" => "2020-11-18"
"products" => array:3 [
[0] => [
"id" => "110"
"qty" => "1"
"serial" => "111;"
]
[1] => [
"id" => "113"
"qty" => "1"
]
[2] => [
"id" => "114"
"qty" => "1"
"serial" => "111;"
]
]
]
]
我哪里出错了
更新
基于@miken32,我改变了以下内容
var x=$('#form create storing').serializeArray()
到
var x=$(“#表单创建存储”).serialize()
url:{{route(“storings.store”)}}
到
url:@json(路由(“storings.store”)
当它传递到控制器时,我得到
array:1 [
"data" => "userid=1&grn_number=111111&supplier_id=3&delivery_order_name=1111111111&delivery_order_date=2020-11-20&products%5B0%5D%5Bid%5D=110&products%5B0%5D%5Bqty%5D=1&products%5B0%5D%5Bserial%5D=&products%5B1%5D%5Bid%5D=112&products%5B1%5D%5Bqty%5D=2&products%5B1%5D%5Bserial%5D="
]
您发送的不是JSON。我建议您只需
var formData=$('#表单创建存储')。serialize()
就是您所需要做的一切。另外,不要使用{{}
将PHP值包含到JavaScript中。而是使用url:@json(route(“storings.store”)代码>嗨,我更新了上面的帖子,我在控制器中得到了如下的数据数组:1[“data”=>“userid=1&grn\u number=111111&supplier\u id=3&delivery\u order\u name=1111111111&delivery\u order\u date=2020-11-20&product%5B0%5D%5Bid%5D=110&product%5B0%5D%5Bqty%5D=1&product%5B0%5D%5Bid%5D=112&product%5B1%5B1%5Bqty%5D=2&product%5B1%5Bserial%5D=”5D=“]
摆脱dataType:json
并在ajax调用中使用data:formData
。
array:1 [
"data" => array:8 [
"userid" => "1"
"grn_number" => "111111"
"supplier_id" => "2"
"delivery_order_name" => "1111111111"
"delivery_order_date" => "2020-11-18"
"products" => array:3 [
[0] => [
"id" => "110"
"qty" => "1"
"serial" => "111;"
]
[1] => [
"id" => "113"
"qty" => "1"
]
[2] => [
"id" => "114"
"qty" => "1"
"serial" => "111;"
]
]
]
]
array:1 [
"data" => "userid=1&grn_number=111111&supplier_id=3&delivery_order_name=1111111111&delivery_order_date=2020-11-20&products%5B0%5D%5Bid%5D=110&products%5B0%5D%5Bqty%5D=1&products%5B0%5D%5Bserial%5D=&products%5B1%5D%5Bid%5D=112&products%5B1%5D%5Bqty%5D=2&products%5B1%5D%5Bserial%5D="
]