我使用Ajax调用发布了一个来自JS的多维数组,但我没有在PHP中接收到它:
$.ajax({
type: 'post',
url: 'external_submit.php',
dataType: "json",
data: {
edit_rfid_changes_submit: edit_rfid_changes_submit,
edited_rfid_arr: edited_rfid_arr
}我100%肯定我以前做过这件事,而且它总是成功的,为什么这次不起作用是我力所能及的!
编辑:
我就是这样创建数组的:
var edited_rfid_arr = [];
for (var i = 0; i < input_fields.length; i++) {
let obj = [];
let rfid = input_fields[i].value;
let id = input_fields[i].attributes['data-rfid_id'].value;
obj['rfid'] = rfid;
obj['id'] = id;
edited_rfid_arr.push(obj);
}发布于 2021-01-14 21:44:44
您应该使obj成为一个普通的对象,而不是数组。虽然您可以将命名属性添加到数组中(因为数组只是一种对象),但是当jQuery序列化数组时,这些属性将被忽略。
因此,将变量声明更改为:
let obj = {};或者您可以完全摆脱obj变量,只需:
edited_rfid_arr.push({rfid, id});通过使用map(),您可以摆脱整个循环。
var edited_rfid_arr = input_fields.map(field =>
({rfid: field.value, id: field.attributes['data-rfid_id'].value}));https://stackoverflow.com/questions/65727170
复制相似问题