使用带有计时器的AJAX从SQL查询显示多个记录

时间:2012-02-23 14:45:26

标签: php ajax timer

我正在尝试找一个关于如何使用PHP从表中检索记录的好例子,然后使用Ajax每隔2分钟刷新一次。

任何人都可以指点我的教程吗?

2 个答案:

答案 0 :(得分:2)

我认为您不会找到具体的教程,但您只需要学习AJAX,然后使用JavaScript的setInterval方法每两分钟调用一次AJAX。

<小时/> 的修改

嗯,我很无聊写这个例子。这没有经过测试,但我认为它没有错误。

<html>
<head>
    <script type="text/JavaScript">
        window.onload = function()
        {
            // call your AJAX function every 2 minutes (120000 milliseconds)
            setInterval("getRecords()", 120000);
        };

        function getRecords()
        {
            // create the AJAX variable
            var xmlhttp;
            if (window.XMLHttpRequest)
                xmlhttp = new XMLHttpRequest();
            else
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

            // set up the response function
            xmlhttp.onreadystatechange = function()
            {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
                {
                    /*
                        Your code goes here. 'xmlhttp.responseText' has the output from getRecords.php
                    */
                    document.getElementById("txaRecords").innerHTML = xmlhttp.responseText;
                }
            }

            // make the AJAX call
            xmlhttp.open("GET", "getRecords.php", true);
            xmlhttp.send();
        }
    </script>
</head>
<body>
    <textarea id="txaRecords"></textArea>
</body>
</html>

答案 1 :(得分:1)

这是我为此目的编写的一些代码。适当调整。

AJAX代码:

function timer()
{
var t=setTimeout("check()",2000);
// At an appropriate interval
}


function check(){

        var xmlhttp;

        if (window.XMLHttpRequest)
          {// code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp=new XMLHttpRequest();
          }
        else
          {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
        xmlhttp.onreadystatechange=function()
          {
          if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
            if (xmlhttp.responseText!=""){
                 var output = xmlhttp.responseText;
                 // Do what you need to do with this variable
              }
            }
          }
        xmlhttp.open("GET","backend.php",true);
          // Set file name as appropriate.
        xmlhttp.send(); 
        timer();
        }

PHP代码:

<?php

// This assumes you have already done mysql_connect() somewhere.

// Replace as appropriate
$query = "SELECT * FROM table_name";

// Perform the query
$result = mysql_query($query);

// Get the results in an array
while($row = mysql_fetch_array( $result )) {
    // Echo the message in an appropriate format.                
    echo "<br />" . $row['column_name'];
}
?>

请记住在加载页面时启动其中一个JS函数:

<body onload="timer()">