将JSON数据返回到表中

时间:2015-06-26 17:43:20

标签: jquery ajax

我有一个将数据返回到表中的脚本,这在一定程度上起作用。我遇到的问题是脚本在某种循环中继续循环并将相同的数据添加到表中的更多行。

function refreshDataLiveEvents() {
    $.ajax({
        type: 'POST',
        url: 'check_current_events.php',
        data: $('#departcount').serialize(),
        dataType: "json", //to parse string into JSON object,
        success: function (data) {
            if (data) {
                var len = data.length;
                var txt = "";
                if (len > 0) {
                    for (var i = 0; i < len; i++) {

                        if (data[i].Department && data[i].Depart) {

                            txt += "<tr><td>" + data[i].Department + "</td><td>" + data[i].Depart + " </td></tr>";
                        }
                    }
                    if (txt != "") {
                        $("#table").append(txt);
                    }
                }
            }
        },
        error: function (jqXHR, textStatus, errorThrown) {
            alert('error: ' + textStatus + ': ' + errorThrown);
        }
    });
    return false;

}
setInterval(refreshDataLiveEvents, 3000);

任何人都可以看到我做错的地方或地点。任何帮助都会很棒。非常感谢提前。

2 个答案:

答案 0 :(得分:3)

循环是因为您使用setInterval每3秒执行一次refreshDataLiveEvents。 如果您需要在3秒后执行一次,请改为使用setTimeout

所以只需改变一下:

setInterval(refreshDataLiveEvents, 3000);

到此:

setTimeout(refreshDataLiveEvents, 3000);

答案 1 :(得分:-1)

在您的代码中,您使用了settimeinterval方法。它会每3000毫秒调用一次。因此,您在调用时清除间隔或使用SetTimeOut方法

SetTimeOut(methodName, ms);