【问题标题】:AJAX Div Retrieval every 60 secondsAJAX Div 检索每 60 秒
【发布时间】:2011-03-04 09:32:59
【问题描述】:

我想做的是每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 页面的页面上。

【问题讨论】:

    标签: php javascript ajax refresh


    【解决方案1】:

    如何使用像 jQuery 这样的框架来简化你的 javascript:

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

    【讨论】:

      【解决方案2】:

      一开始并没有调用js函数ajax_table()

      setTimeout('ajax_table()',60000);
      

      在您的代码中。

      第二点,你确定你是第一次在某处调用moniter() 函数吗?

      【讨论】:

      • 谢谢!第一次把moniter改成ajax_table,还需要做什么?
      • 还是不行?代码不完整,所以我只能猜测。 1)您必须在页面加载后添加第一个计时器,以便执行第一个请求(丑陋而简单:
      【解决方案3】:

      试试这个,你可以每 60 秒检索一个 PHP 文件的内容并将其插入到一个 div 中http://www.webtrickss.com/ajax/how-to-refresh-a-div-using-ajax/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-09
        • 1970-01-01
        • 2014-10-16
        • 2011-03-09
        • 1970-01-01
        • 1970-01-01
        • 2021-12-06
        相关资源
        最近更新 更多