Почему ключ массива пропускает последний] при передаче данных поля через AJAX в функцию PHP? - PullRequest
1 голос
/ 06 июля 2019

Я использую этот код для получения объекта входных имен полей и значений для передачи в функцию AJAX.

var fields = {};
$("#wrap").find(":input").each(function() {
    fields[this.name] = $(this).val();
});

var obj = {fields: fields};

AJAX-вызов функции PHP

var data = {
    'action': 'my_function',
    'fields': obj,
};

jQuery.post( ajaxurl, data, function( response ) {

    console.log(response);

});

Поля:

<div id="wrap">
<input type="number" min="0" name="my_array[123][somelabel]" value="">
<input type="number" min="0" name="my_array[456][somelabel]" value="">
</div>

PHP просто делает:

print_r( $_POST['fields'] );

Результат и мой ожидаемый результат

В журнале консоли ответа это возвращает массив с первым ключом полей как my_array[123

Я ожидаю, что это будет my_array[123] - почему он пропускает последние ]?

1 Ответ

1 голос
/ 06 июля 2019

Измените свой код присвоения массива, как показано ниже: -

var fields = []; //empty array
$("#wrap").find(":input").each(function() {
    var obj = {
      $(this).attr('name'): $(this).val()
   }; //created object with key value pair
  fields.push(obj); //add object to array
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...