是否可以从成功数据中将一些更改过的变量插入到ajax中?
在页面加载时,首先ajax触发并显示mysql的一些记录,然后我获取最后一个记录ID并将其存储在latestID
中,接下来第二个ajax触发并仅向前检索该ID中的记录,然后存储lastId然后再次射击。
$.ajax({
type: 'POST',
url: '{{ ... }}',
dataType: 'json',
'success': function (data) {
callback(data);
}
});
function callback(response) {
var idList = [];
var printer_category = response.printer.productcategory_id;
var printer_timer = parseInt(response.printer.timer);
var printer_storeid = response.printer.store_id;
var printer_physicalPrint = parseInt(response.printer.physical_print);
var printer_id = parseInt(response.printer.id);
var data = response.transactions;
console.log(response);
$.each(data, function (i, dataitem) {
console.log(dataitem);
idList.push(dataitem.id);
});
var latestID = Math.max.apply(Math, idList);
function getData() {
$.ajax({
type: 'POST',
url: '{{ ... }}',
dataType: 'json',
data: {latestID: latestID, printer_timer: printer_timer, printer_storeid: printer_storeid, printer_category: printer_category},
success: function (data) {
console.log(data);
data = data.transactions;
if (data != 0) {
var idList = [];
$.each(data, function (i, dataitem) {
console.log(dataitem);
idList.push(dataitem.id);
});
var latestID = Math.max.apply(Math, idList);
console.log(latestID);
}
}
});
}
getData();
setInterval(function () {
getData();
}, 10000);
}
});
如果我console.log(latestID)
内的success: function
显示正确的值,但是ajax发布data: {latestID: latestID}
,则每次运行1
时的值setInterval
。
* EDIT:添加了完整的代码。
答案 0 :(得分:1)
代替var latestID = Math.max.apply(Math, idList);
在成功回调中使用latestID = Math.max.apply(Math, idList);
。
在变量声明覆盖全局变量值的方法级别变量之前使用var。您想继续使用LatestID时,需要具有全局变量。