我目前正在设计一个允许我进行监控的PHP脚本/ AJAX,实际上在我的内部网上我想要检索当天存储在数据库中的操作列表。所以当我尝试异步查看成员时,我提出了一个请求,但它不起作用。
事实上,我想显示成员进行测试,并在适应当天的行为和异步(无需重新加载)后恢复议程,因为我必须能够实时观察记录的数据。
所以我做了这段代码:
在script.js中,我把它放在标题中:
function writeInDiv(text){
var objet = document.getElementById('monitoring');
objet.innerHTML = text;
}
function ajax()
{
var xhr=null;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
xhr.open("GET", "ajax.php", false);
xhr.send(null);
writeInDiv(xhr.responseText);
setInterval("ajax()",5000);
}
然后我有另外两个页面,即显示代码,它包含以下内容:
<button onclick='javascript:ajax()'>Afficher</button>
<div id="monitoring"></div>
<?php
$requette = mysql_query("SELECT * FROM gestionnaire ORDER BY ID DESC LIMIT 0,10");
$result=mysql_query($requette) or die;
While($donne = mysql_fetch_array($requette))
{
$message = htmlentities($donne['nom']);
$pseudo = htmlentities($donne['prenom']);
?>
<b><?php var_dump($donnee); echo $pseudo; ?>:</b> <?php echo $message; ?><br />
<?php
}
?>
麻烦的是,没有任何东西出现我甚至没有错误消息,尽管表中填充了这些字段
我尝试了var_dump
,但是在这种情况下,它什么都没有。
我不知道,或者它可能来自。
答案 0 :(得分:3)
Ajax调用是异步的,也许在您将responseText传递给writeInDiv时调用没有完成。请尝试以下方法:
function writeInDiv(text){
var objet = document.getElementById('monitoring');
objet.innerHTML = text;
}
function ajax()
{
var xhr=null;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
xhr.open("GET", "ajax.php", false);
xhr.send(null);
xhr.onreadystatechange=function()
{
if (xhr.readyState==4 && xhr.status==200)
{
writeInDiv(xhr.responseText);
}
}
setTimeout("ajax()",5000);
}
或使用jQuery:
function ajax() {
$('#monitoring').load('ajax.php');
setTimeout("ajax()",5000);
}
此外,我认为你拼错了var_dump($donnee);
它可能是var_dump($donne);