【发布时间】:2025-12-11 01:45:01
【问题描述】:
我有从具有多个同名值的表单中获取的数据。在使用 ajax 将其发送到 url 之前,我想在发布之前将其排列在数组中。对于所有五个不同的输入字段,我基本上得到了如下这些值。当我使用 .Push 函数实现这个时,我收到一个错误,“Uncaught TypeError: dArray.push is not a function”
var g = document.getElementsByName("dataA[]"); //equals 1, 11, 111
var dArray = [];
var eArray = [];
var fArray = [];
var gArray = [];
var hArray = [];
for(var i=0;i<g.length;i++){
dArray = d[i].value;
eArray = e[i].value;
fArray = f[i].value;
gArray = g[i].value;
hArray = h[i].value;
//alert(dArray); Alerts 3 times, 1, 11, then 111
//I keep receiving "Uncaught TypeError: dArray.push is not a function" Error
dArray.push(d[i].value); //Desired [1,11,111]
eArray.push(e[i].value);
fArray.push(f[i].value);
gArray.push(g[i].value);
hArray.push(g[i].value);
}
var dArrayb = JSON.stringify(dArray); //Desired ["1","11","111"]
var eArrayb = JSON.stringify(eArray);
var fArrayb = JSON.stringify(fArray);
var gArrayb = JSON.stringify(gArray);
var hArrayb = JSON.stringify(hArray);
var dataArray = "DataD="+ dArrayb +"&DataE="+ eArrayb +"&DataF="+ fArrayb +"&DataG="+ gArrayb +"&DataH="+ hArrayb +"";
alert(dataArray);
期望的结果
var dataArray = DataD="["1","11","111"]"&DataE="["2","22","222"]"&DataF="["3","33","333"]"&DataG="["4","44","444"]"&DataH="["5","55","55"]"
Ajax 发送
$.ajax({
type: "POST",
url: "SaveData.php",
data: dataArray,
dataType: 'json',
async: false,
crossDomain: true,
cache: false,
success: function (output){
alert(output);
} //success response
}); //Close $.ajax
【问题讨论】:
-
您在循环的第一行重新分配了
dArray,这使它成为d[i].value的类型。显然这不是一个数组,所以你不能向它推送任何东西......
标签: javascript arrays ajax