0

我目前正在设计一个允许我进行监控的 PHP 脚本/AJAX,实际上我想在我的 Intranet 上检索当天​​已存储在数据库中的操作列表。所以我提出了一个请求,我尝试异步查看成员,但它不起作用。

事实上,我想显示成员以进行测试,并在适应恢复今天的行动议程后异步(无需重新加载),因为我必须能够实时观察记录的数据。

所以我做了这个代码:

在 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但在这种情况下,它什么都没有。

我不知道,或者它可能来自。

4

1 回答 1

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);

于 2012-09-07T16:03:53.547 回答