2013-08-04 78 views
0

您好我正在使用一个留言箱,我需要帮助通过ajax自动更新它们。Ajax自动更新没有更新

这是我的发言栏与getShouts =真正的结尾:?

img

这里是我的发言栏不说:

img

我的目标是运行一个Web请求并获取“getShouts”中的留言箱内容并在我所在的页面上进行更新。

T他的PHP代码在页面顶部运行:

if(!empty($_GET['getShouts'])) 
{ 
    $sbinfo = ""; 
    $rows = $db->query("SELECT * FROM shouts order by shoutid DESC limit 20"); 
    while($row = $rows->fetch_array(MYSQL_ASSOC)) 
     $sbinfo .= $row['username'] . ": " . $row['shout'] . "<br />"; 
} 

将文本的标记存储到一个字符串中。 if(!empty($_GET['getShouts'])) echo $markup;

这里是我的ajax我目前正在运行:

<script> 


     $(document).ready(function() { 
      getMessages(); 
     }); 

     function getMessages() 
     { 

      //make request 
      var req = new XMLHttpRequest(); 
      req.open("GET", location.href+"?getShouts=true", true); 
      req.send(null); 
      document.getElementById("shouts-box").innerHTML = req.responseXML.getElementsById("shouts-box")[0].innerHTML; 

      //loop 
      window.setInterval(getMessages,3000); 
     } 
</script> 

任何想法

在PHP文件后,它的显示标记?

+2

你可能要替换'和'setTimeout' setInterval'因为每次访问'getMessages'初始化一个新的'setInterval'时间,而其他人继续跑。离开它一天,你的机器会卡住。 –

+0

@MichaelSazonov感谢那 – MysteryDev

回答

0

我已经找到了这个用一个解决方案:

$('#div').load('index.php?getShouts=true #div'); 
+0

jQuery for life \ o / – EoiFirst