首页 > 解决方案 > 函数未在 setInterval 上运行

问题描述

我正在尝试更新从 MySQL 中提取的表中的值,但该函数没有重新运行?

或者,如果有其他解决方案允许我以 60 秒的间隔更新 MySQL 数据库中的值,请告诉我。

编辑:错误已解决,但现在我得到一个新错误,而不是替换表格单元格中的 mysql 值,它将新单元格添加到表格中需要更改或添加代码的哪一部分来解决这个问题?

下面的代码没有返回错误:

<script type="text/javascript">
$(document).ready(function(){
console.log(1+0);
$.ajax({
    url: 'fetch.php',
    type: 'get',
//type: 'post',
    dataType: 'JSON',
    success: function(response){
        var len = response.length;
        for(var i=0; i<len; i++){
            var beacon = response[i].beacon;
            var location = response[i].location;


            var tr_str = "<tr>" +
                "<td align='center'>" + beacon + "</td>" +
                "<td align='center'> <span class='minutes'>00</span>:<span class='seconds'>00</span> </td>" +
                "</tr>";

            $("#userTable tbody").append(tr_str);
        }
    setInterval(updateTable, 10000);
}
    })
})

        function updateTable() {
                    console.log(1+1);
$.ajax({
    url: 'fetch.php',
    type: 'get',
//type: 'post',
    dataType: 'JSON',
    success: function(response){
        var len = response.length;
        for(var i=0; i<len; i++){
            var beacon = response[i].beacon;
            var location = response[i].location;


            var tr_str = "<tr>" +
                "<td align='center'>" + beacon + "</td>" +
                "</tr>";

            $("#userTable tbody").append(tr_str);
            }

}
});
};

</script>

标签: javascriptjqueryajaxsetinterval

解决方案


如果你格式化它,你会看到你setInterval在你的函数里面......你应该把它放在$(document).ready回调函数中。

$(document).ready(function () {
  $.ajax({
    url: 'fetch.php',
    type: 'get',
//type: 'post',
    dataType: 'JSON',
    success: function (response) {
      var len = response.length;
      for (var i = 0; i < len; i++) {
        var beacon = response[i].beacon;
        var location = response[i].location;


        var tr_str = "<tr>" +
            "<td align='center'>" + beacon + "</td>" +
            "<td align='center'> <span class='minutes'>00</span>:<span         class='seconds'>00</span> </td>" +
            "</tr>";

        $("#userTable tbody").append(tr_str);
      }
      // <===== You should place youre set interval here
    }
  })
});

function updateTable() {
  console.log(1 + 1);
  $.ajax({
    url: 'fetch.php',
    type: 'get',
//type: 'post',
    dataType: 'JSON',
    success: function (response) {
      var len = response.length;
      for (var i = 0; i < len; i++) {
        var beacon = response[i].beacon;
        var location = response[i].location;


        var tr_str = "<tr>" +
            "<td align='center'>" + beacon + "</td>" +
            "</tr>";

        $("#userTable tbody").append(tr_str);
      }

    }
  });
  var updateTableInterval = setInterval(updateTable, 10000);
}

推荐阅读