我要把for循环下每个data全部传给ajax,可是我现在每次只能取到最后一个data而已!
for(var i=0;i<selRow.length;i++){
var registCode=selRow[i].registCode;
var formId=selRow[i].formId;
var data = {'registCode':registCode,'formId':formId};
}
$.ajax({
type : 'post',
url : '${ctx}/intr/print/getDetailFee',
dataType : 'json',
data : data,
success : function(data) {
var fileName = data.entity.fileName;
if (data.success == true) {
location.href = "${ctx}/intr/print/downLoadCollectionLineWPdf?fileName="
+ fileName
} else {
$.modalAlert(data.message, "error");
}
$.loading(false);
}
})
}
https://www.cnblogs.com/sdpdf/p/4322500.html
js没用过,但把变量ajax放入for循环中,那每次循环它都被重新定义,你只能得到最后一次循环的值。
var registCode=[];
var formId=[];
for(var i=0;i<selRow.length;i++){
registCode.push(selRow[i].registCode);
formId.push(selRow[i].formId);
}
var data = {'registCode':registCode.join(","),'formId':formId.join(",")};
$.ajax({
..........
})
var data=[]
for(var i=0;i<selRow.length;i++){
var registCode=selRow[i].registCode;
var formId=selRow[i].formId;
data.push( {'registCode':registCode,'formId':formId})
}
$.ajax({
type : 'post',
url : '${ctx}/intr/print/getDetailFee',
dataType : 'json',
data :{data: JSON.stringify(data)},
在for循环里去定义data的话每次都是一个新的变量了,结果就是最后一个生效。
var data = [];
for(var i=0;i<selRow.length;i++){
var registCode=selRow[i].registCode;
var formId=selRow[i].formId;
data.push({'registCode':registCode,'formId':formId});
}
$.ajax({
type : 'post',
url : '${ctx}/intr/print/getDetailFee',
dataType : 'json',
data : data,
success : function(data) {
var fileName = data.entity.fileName;
if (data.success == true) {
location.href = "${ctx}/intr/print/downLoadCollectionLineWPdf?fileName="
+ fileName
} else {
$.modalAlert(data.message, "error");
}
$.loading(false);
}
})
}
如果你想传所有的数据到ajax,应该把data定义在外面,难道不知道全局变量和局部变量的区别吗?
难道不是应该把ajax也放到for循环中么?
var data=[];
for(var i=0;i<selRow.length;i++){
data.push({'registCode':selRow[i].registCode;,'formId':selRow[i].formId;});
}
你可以把ajax请求封装一个方法,将data传进去,然后在for循环里面调用方法,你要是不想写方法,你可以在for里面用闭包的方法调用ajax,结果都是一样的。-
首先,这个问题是想将data一起传过去还是分别进行传过去呢? 常理来说是一起传,这样减少请求次数,加快页面渲染速度。变量的申明一定要放在循环外面,之后循环往数组中push就可以了,你这样放在循环里面,就意味着每次进入循环的时候,对变量进行了重新申明,故最后你得到只是循环中最后一个了。
定义一个数组,把data放到数组里,ajax传过去数组