通过ajax将数据传递给laravel,其中包含答案中的数组



我有一个网页,它通过ajax发送数据,数据包括文本和一些数组变量。我的代码是这样的:

var data = {
'action':action,
'main_phase':main_phase,
'secondary_phase':secondary_phase,
'domain':domain,
'description':description,
'option':option,
'assumption':assumption,
'site':site_data,
'quantity':quantity,
'loe_per_quantity':loe_per_quantity,
'formula':formula,
'recurrent':recurrent,
'start_date':start_date,
'end_date':end_date,
'cons':cons_data
}

其中site_data和cons_data是这样的数组:

cons_data
0: [name: "business consultant", percentage: "0", price: "0"]
1: [name: "junior consultant", percentage: "50", price: "1000"]
2: [name: "lead consultant", percentage: "50", price: "1200"]

它是这样创建的:

var cons_data = [];
loe_data.col.cons.forEach(fill_cons_data_accept);
function fill_cons_data_accept (cons,index){
cons_data[index] = [];
cons_data[index].name = cons.name;
cons_data[index].percentage = $('input.loe_cons_percentage[data-name="'+cons.name+'"]').val();
cons_data[index].price = $('input.loe_cons_price[data-name="'+cons.name+'"]').val();
}

我正试图通过ajax将所有这些数据发送到另一个页面:

$.ajax({
type: 'post',
url: "{!! route('loeCreateUpdate','') !!}/"+id,
data:data,
dataType: 'json',
success: function(data) {
...

当我用检查我在另一边收到的东西时

public function create_update(Request $request,$id)
{
$inputs = $request->all();
return json_encode($inputs);
}

除了2个数组,我什么都得到。

以下是我通过console.log((找到的内容:

  1. 我发送的内容:
{
action: "update"
assumption: "The customer needs to come on site"
cons: (3) [Array(0), Array(0), Array(0)]
description: "Evaluate what the customer needs"
domain: "Security"
end_date: ""
formula: "{{#site}}+{{ape}}-2*{{#site}}"
loe_per_quantity: "5"
main_phase: "BUILD"
option: "option 1"
quantity: "2"
recurrent: 0
secondary_phase: "workshop"
site: [ape: Array(0), switches: Array(0), #site: Array(0)]
start_date: ""
}
  1. 我得到了什么:
{
action: "update"
assumption: "The customer needs to come on site"
description: "Evaluate what the customer needs"
domain: "Security"
end_date: null
formula: "{{#site}}+{{ape}}-2*{{#site}}"
loe_per_quantity: "5"
main_phase: "BUILD"
option: "option 1"
quantity: "2"
recurrent: "0"
secondary_phase: "workshop"
start_date: null
}

正如你在得到的结果中看到的,网站和罪犯消失了。。。

您可以在将数组附加到data之前将其转换为json字符串

const site = JSON.stringify(site_data);
const cons = JSON.stringify(cons_data);
data.site = site;
data.cons = cons;

或者你可以使用jQuery的serializeArray

const site = $(site_data).serializeArray();
const cons = $(cons_data).serializeArray();
data.site = site;
data.cons = cons;

验证jQuery语法-不太确定

相关内容

最新更新