我使用此代码来获取字段输入名称和值的对象,并将其传递给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]
-为什么它缺少最后一个]
?
答案 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
});