Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将带有Ajax的数组发送到后端会嵌套太多数组_Php_Jquery_Ajax_Laravel - Fatal编程技术网

Php 将带有Ajax的数组发送到后端会嵌套太多数组

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

我正在构建一个电子邮件发送界面,您可以在其中添加任意数量的收件人。表单中有一个按钮,用于添加新的文本字段对名称和电子邮件输入。乘法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(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';
根据我的口味,这个解决方案不会清理代码,但是如果没有简单的解决方案,我也可以知道这是不可能的:谢谢你的帮助