AJAX Div Retrieval каждые 60 секунд - PullRequest
0 голосов
/ 16 июня 2010

Что я хотел бы сделать, это извлечь содержимое файла PHP и вставлять его в div каждые 60 секунд, в основном обновляя динамический 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 такой же, заключенный в div сАтрибут id 'ajax_table'.

Код 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.

Ответы [ 3 ]

3 голосов
/ 16 июня 2010

Как насчет использования фреймворка, такого как jQuery, для упрощения вашего JavaScript:

$(function() {

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

});
0 голосов
/ 02 декабря 2011

Попробуйте, вы можете извлечь содержимое файла PHP и вставлять его в div каждые 60 секунд http://www.webtrickss.com/ajax/how-to-refresh-a-div-using-ajax/

0 голосов
/ 16 июня 2010

Во-первых, в вашем коде нет js-функции ajax_table (), вызываемой в

setTimeout('ajax_table()',60000);

.

Во-вторых, вы уверены, что вызываете функцию moniter () дляв первый раз?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...