Я создаю интерфейс отправки электронной почты, в который вы можете добавить столько получателей, сколько захотите. В форме есть кнопка для добавления новых пар текстовых полей (имя и адрес электронной почты). умножение 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();
});
После отправки формы я отправляю данные в бэкэнд через ajax запрос. Запрос работает нормально, я отправляю данные умноженных полей следующим образом:
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(),
},
`
Я запускаю его, и он попадает в бэкэнд, я могу быть счастлив, что он работает, но имя-получателя и Переменные receient_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 звонкам, и я немного застрял в этой проблеме, полагая, что есть лучшее Решение, только я не могу найти его. Заранее спасибо за любую помощь!