javascript - 按时间间隔刷新页脚 DIV

标签 javascript

我在刷新页脚 div 时遇到问题,其中 mysql 结果显示在页脚中

我目前有一个显示 100 个框表的页面,该表在页面加载时加载并按时间间隔刷新,我尝试对页脚实现相同类型的方法,但出现意外标记的错误 <

我目前用来刷新表格的代码是

        function updateTable() {
        //console.log('function called');
        $('td.coloured').css('background-color','#8F8F8F').toggleClass('coloured');
        $.get('php/mysql.php', function(response) {
            response.forEach(function(item, index) {
                console.log(item.beacon);
                //$('td.coloured').css('background-color','#8F8F8F').toggleClass('coloured');
        $(`td.${item.beacon}`).css('background-color', item.location).toggleClass('coloured');
            });
        });

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


<script>
function updateFooter() {
<div id="footer">

<div class="box"><h6 align="center">Total count<h6>
<?php           
$connect = mysqli_connect("localhost", "user", "password", "test");  
$query = "SELECT count(value1) FROM table WHERE date = CURDATE()";  
$result = mysqli_query($connect, $query); 
while($row = mysqli_fetch_array($result)) {  
echo "".$row['count(value1)'].""; 
}  
?></div>
<div class="box2"><h6 align="center">Total count<h6>
<?php           
$connect = mysqli_connect("localhost", "user", "password", "test");  
$query = "SELECT count(value2) FROM table WHERE date = CURDATE()";  
$result = mysqli_query($connect, $query); 
while($row = mysqli_fetch_array($result)) {  
echo "".$row['count(value2)'].""; 
}  
?></div>
<div class="box3"><h6 align="center">Total count<h6>
<?php           
$connect = mysqli_connect("localhost", "user", "password", "test");  
$query = "SELECT count(value3) FROM table WHERE date = CURDATE()";  
$result = mysqli_query($connect, $query); 
while($row = mysqli_fetch_array($result)) {  
echo "".$row['count(value3)'].""; 
}  
?></div>
<div class="box4"><h6 align="center">Total count<h6>
<?php           
$connect = mysqli_connect("localhost", "user", "password", "test");  
$query = "SELECT count(value4) FROM table WHERE date = CURDATE()";  
$result = mysqli_query($connect, $query); 
while($row = mysqli_fetch_array($result)) {  
echo "".$row['count(value4)'].""; 
}  
?></div>
</div>
            });
    }
    var updateFooterInterval = setInterval(updateFooter, 5000);
});
</script>

最佳答案

使用纯 JavaScript,您不能混合使用 HTML 和 JS(React 会这样做,但它是 RJX)。简而言之,为页脚准备一个单独的 PHP 文件,例如 footer.php 并在其中放入您想要更新的代码:

<?php           
$connect = mysqli_connect("localhost", "user", "password", "test");  
$query = "SELECT count(value) FROM table WHERE date = CURDATE()";  
$result = mysqli_query($connect, $query); 
while($row = mysqli_fetch_array($result)) {  
  echo "".$row['count(value)'].""; 
}  
?>

然后在您的前端,使用 AJAX,最好是 ( $.load) 来更新:

<div id="footer">
  <div class="box">
    <h6 align="center">Total count<h6>
    <div class="footer-contents"></div>
  </div>
</div>

有了上面的,使用:

$(".footer-contents").load("footer.php");
setInterval(function () {
  $(".footer-contents").load("footer.php");
}, 5000);

以上将以 5 秒的间隔更新页脚。

最好将 document 的 ready 函数包装起来,并添加 #footer 以获得额外的特异性:

$(function () {
  $("#footer .footer-contents").load("footer.php");
  setInterval(function () {
    $("#footer .footer-contents").load("footer.php");
  }, 5000);
});

更新:

此内容位于 footer.php 中:

<div id="footer">
  <div class="box">
    <h6 align="center">Total count<h6>
<?php
$connect = mysqli_connect("localhost", "user", "password", "test");  
$query = "SELECT count(value1) FROM table WHERE date = CURDATE()";  
$result = mysqli_query($connect, $query); 
while($row = mysqli_fetch_array($result)) {  
  echo "".$row['count(value1)'].""; 
}  
?>
  </div>
  <div class="box2">
    <h6 align="center">Total count<h6>
<?php
$connect = mysqli_connect("localhost", "user", "password", "test");  
$query = "SELECT count(value2) FROM table WHERE date = CURDATE()";  
$result = mysqli_query($connect, $query); 
while($row = mysqli_fetch_array($result)) {  
  echo "".$row['count(value2)'].""; 
}  
?>
  </div>
  <div class="box3">
    <h6 align="center">Total count<h6>
<?php
$connect = mysqli_connect("localhost", "user", "password", "test");  
$query = "SELECT count(value3) FROM table WHERE date = CURDATE()";  
$result = mysqli_query($connect, $query); 
while($row = mysqli_fetch_array($result)) {  
  echo "".$row['count(value3)'].""; 
}  
?>
  </div>
  <div class="box4">
    <h6 align="center">Total count<h6>
<?php
$connect = mysqli_connect("localhost", "user", "password", "test");  
$query = "SELECT count(value4) FROM table WHERE date = CURDATE()";  
$result = mysqli_query($connect, $query); 
while($row = mysqli_fetch_array($result)) {  
  echo "".$row['count(value4)'].""; 
}  
?>
  </div>
</div>

您不需要上述代码中的任何其他内容。

关于javascript - 按时间间隔刷新页脚 DIV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54309596/

相关文章:

java - HtmlUnit 不可能的站点?

javascript - 变量在for循环中被覆盖

javascript - 在 Javascript 中从 URL 中提取号码 ID

javascript - 空 jQuery 字符串不为空

javascript - 将对象添加到另一个对象中的另一个对象

javascript - 如何在表单中添加随机按钮

javascript - Sails.js 通过 id 查找多个数据库条目

Javascript 随机名称猜测器 : Unresponsive Script Issues

javascript - 使用标签之间的文本更改标签

javascript - 重定向前编辑 URL