我有一个ajax调用调用,它在一个循环中执行查询数据库并带回有关我正在构建的表的信息。我试过一个星期从回调函数返回正确的信息,现在没有运气。我正在使用的代码如下。为了简化data.i返回和整数1-30之前我将它更改为我将来需要的实际数据(是的我知道这可以在for循环中完成但我以后需要的实际数据将被更改到一个字符串)。
我需要做的是返回格式化的td,其中包含来自ajax调用的信息,并将其返回到回调函数之外,以使用我拥有的其余代码,因此函数可以继续。我已经检查了本网站上的其他帖子,但似乎没有人给出如何做到这一点的答案。
如果我控制台记录eee我得到了正确的td单元格值,但这不会超出返回的请求。
由于
for(i = 1; i <= monthLastDay; i++) {
var r;
var vars = {
i: i
}
function getData() {
return $.ajax({
url: "http://localhost:8888/vs-time-tracking-ajax-calendar/",
data: vars,
type: "POST",
dataType: "json",
success: function (data) {
eee = callback(data);
},
error: function (request, status, error) {
alert(request.responseText);
}
})
}
function callback(data) {
console.log(data.i);
if(moment(timeNowLocal).date(data.i).format("D.M.YYYY") === timeNow.format("D.M.YYYY")) {
r = '<td class="ic__day ic__day_state_current">' + data.i + '</td>';
} else if(timeSelected && moment(timeNowLocal).date(data.i).format("D.M.YYYY") === timeSelected.format("D.M.YYYY")) {
r = '<td class="ic__day ic__day_state_selected">' + data.i + '</td>';
} else {
r = '<td class="ic__day">' + data.i + '</td>';
}
return r;
}
//This returns [Object, object]
html += getData();
}