Php 将带有Ajax的数组发送到后端会嵌套太多数组
我正在构建一个电子邮件发送界面,您可以在其中添加任意数量的收件人。表单中有一个按钮,用于添加新的文本字段对名称和电子邮件输入。乘法JQuery如下所示:Php 将带有Ajax的数组发送到后端会嵌套太多数组,php,jquery,ajax,laravel,Php,Jquery,Ajax,Laravel,我正在构建一个电子邮件发送界面,您可以在其中添加任意数量的收件人。表单中有一个按钮,用于添加新的文本字段对名称和电子邮件输入。乘法JQuery如下所示: var wrapper = $(".input_fields_wrap"); //Fields wrapper var add_button = $(".add_field_button"); //Add button ID var x = 0; //initial text box number $(add_button).click(fu
var wrapper = $(".input_fields_wrap"); //Fields wrapper
var add_button = $(".add_field_button"); //Add button ID
var x = 0; //initial text box number
$(add_button).click(function (e) { //on add input button click
e.preventDefault();
x++; //text box increment
$(wrapper).append(
'<div class="form-group row multiplied">\n' +
' <label for="recipient_name_' + x + '" class="col-sm-1 col-form-label">Name</label>\n' +
' <div class="recipient_name">\n' +
' <input class="form-control" type="text" name="recipient_name" id="recipient_name_' + x + '">\n' +
' </div>\n' +
' <label for="recipient_email_' + x + '" class="col-sm-1 col-form-label">E-mail</label>\n' +
' <div class="recipient_email">\n' +
' <input class="form-control" type="text" name="recipient_email" id="recipient_email_' + x + '">\n' +
' </div>
<a href="#" class="ml-2 btn btn-danger remove_field">
<i class="fas fa-trash" aria-hidden="true"></i>
</a>
</div>'
); //add input box
});
$(wrapper).on("click", ".remove_field", function (e) { //user click on remove text
e.preventDefault();
$(this).parent('div').remove();
});
data: {
sender_name : $("#sender_name").val(),
sender_email : $("#sender_email").val(),
subject : $("#subject").val(),
email_content: $("#email_content").val(),
recipient_name : $('input[name="recipient_name"]').serializeArray(),
recipient_email : $('input[name="recipient_email"]').serializeArray(),
},
`
我启动它,它进入后端我很高兴它能工作,但是recipient_name和recipient_email变量是包含元素的值和名称的数组。以下列形式:
array:2 [
0 => array:2 [
"name" => "recipient_name"
"value" => "John Doe"
]
1 => array:2 [
"name" => "recipient_name"
"value" => "Jane Doe"
]
]
但我更想要像这样的东西
array:2 [
0 => "John Doe"
1 => "Jane Doe"
]
换言之:
现在,我在后端访问我的变量:
request('recipient_name')[$key]['value'];
我想要像这样
request('recipient_name')[$key];
不幸的是,我只是在学习ajax调用,我有点被这个问题所困扰,相信有更好的解决方案,但我找不到。提前谢谢你的帮助 这就是数据的“解包”方式,如果需要,您可以在PHP中对其进行预处理: $myValues=array_映射函数$val{return$val['value'];},请求'recipient_name';
根据我的口味,这个解决方案不会清理代码,但是如果没有简单的解决方案,我也可以知道这是不可能的:谢谢你的帮助