通过AJAX将字段数据传递给PHP函数时,为什么数组键缺少最后一个[]?

时间:2019-07-06 08:59:34

标签: php jquery json ajax

我使用此代码来获取字段输入名称和值的对象,并将其传递给AJAX函数。

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

var obj = {fields: fields};

对PHP函数的AJAX调用

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 个答案:

答案 0 :(得分:1)

按如下所示更改数组分配代码:-

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
});