在回调函数返回正确后,Ajax返回给出[object object]的值

时间:2018-01-08 14:26:06

标签: javascript jquery ajax

我有一个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();
}

0 个答案:

没有答案