php - 每 60 秒 AJAX Div 检索一次

标签 php javascript ajax refresh

我想要做的是每 60 秒检索 PHP 文件的内容并将其插入到 div 中,基本上刷新动态 div。到目前为止,我已经提出了以下代码,但它似乎不起作用。代码就是这样,除了MYSQL登录之外,没有什么多余的。

PHP 抓取:

<?php                   
$time = date("m/d/Y h:i:s a", time());
                mysql_query("UPDATE djs SET requesttime='{$time}' WHERE username='{$djs['username']}'")
                or die(mysql_error()); 

                $request_db = mysql_query("SELECT * FROM requests
                WHERE haveplayed='0'") or die(mysql_error());  
                echo "<table style=\"border:1px solid;width:99%;margin-left:auto;margin-right:auto;\" border=\"1\">";
                echo "<tr><th>Title</th><th>Artist</th><th>Dedicated To...</th></tr>";
                while($request = mysql_fetch_array( $request_db )) {
                    echo "<tr><td style=\"width:33%;padding:1px;\">";
                    echo $request['SongName'];  
                    echo "</td><td style=\"width:33%;\">";
                    echo $request['Artist'];    
                    echo "</td><td style=\"width:33%;\">";
                    echo $request['DedicatedTo'];
                    echo "</td></tr>";  
                }
                echo "</table>";
            ?>

原始 PHP 代码是一样的,封装在一个 id 属性为“ajax_table”的 div 中。

JavaScript 是:

// JavaScript Document
var xmlHttp_moniter

function moniter()
{
    xmlHttp_moniter = GetXmlHttpObject_parcel()
if(xmlHttp_moniter == null)
{
    alert("browser does not support HTTP Request")
    return
}
var url="ajax_table.php?random=" + Math.random()
xmlHttp_moniter.onreadystatechange = stateChanged
xmlHttp_moniter.open("GET",url,true)
xmlHttp_moniter.send(null)

}

function stateChanged()
{
if(xmlHttp_moniter.readyState==4 || xmlHttp_moniter.readyState == "complete")
{
    document.getElementById("ajax_table").innerHTML = xmlHttp_moniter.responseText
    setTimeout('ajax_table()',60000);
}
}

function GetXmlHttpObject_parcel()
{
var xmlHttp_moniter=null;
try
{
    xmlHttp_moniter=new XMLHttpRequest();
}
catch (e)
     {
         //Internet Explorer
         try
          {
              xmlHttp_moniter=new ActiveXObject("Msxml2.XMLHTTP");
          }
         catch (e)
          {
          xmlHttp_moniter=new ActiveXObject("Microsoft.XMLHTTP");
          }
     }
return xmlHttp_moniter;
}

这是在请求另一个 php 页面的页面上。

最佳答案

如何使用像 jQuery 这样的框架来简化您的 JavaScript:

$(function() {

  setInterval(function() {
    $.get('ajax_table.php', function(data) {
      $('#ajax_table').html(data);
    });
  }, 60 * 1000);

});

关于php - 每 60 秒 AJAX Div 检索一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3052308/

相关文章:

javascript - 简单的 PHP 数组到 Javascript 数组

javascript - 监控 JQuery 发出的所有 AJAX 请求?

mysql - AJAX 仅获取特定类的 html

PHP - Twig 更改数组键值

php - Double 转义字符串是否错误?

javascript - 如何使用 JavaScript 检索 while 循环内文本字段的值?

javascript - 创建了一个 jar 头幻灯片(JS 和 JQuery)但移动 jar 头有困难

php - 为什么我的 jquery 对话框 ajax 加载拉取整个页面而不是选择器 (div)?

php - 使用 PHP7 MySQLi 准备语句将 BIT(M) 列值插入 MySQL5.7

php - 非常奇怪的行为 jQuery load() 与 CodeIgniter