0

我无法使用 JQuery/Ajax 将 PHP 文件的内容加载到 div 标记中。

这是我正在加载文件的页面:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>

<script>
function init() {
    reloadChat();
    setInterval (reloadChat, 5000);
}

function reloadChat() {
    $.ajax({  
        url: "chat.php",  
        cache: false,  
        success: function(){
            $("#chatmenu").load("chat.php");
        },  
    });  
}
</script>

<body onLoad='init()'></body>

<div id='chatmenu'></div>

我正在加载的 PHP 文件 (chat.php) 在同一个文件夹中,并且只是一个 echo 语句:

<?php echo "test"; ?>

为了确保我的 Javascript 函数没有问题,我在成功函数下添加了一个警报,它确实每 5 秒提醒我一次,所以我认为这是负载语句的问题。

4

4 回答 4

4

立即使用.load(),无需先发出 Ajax 请求:

function reloadChat() {
    $("#chatmenu").load("chat.php");  
}

更新:

我注意到在您的示例代码中,您在div元素之前关闭了 body-tag。

<body onLoad='init()'></body> <!-- This ain't right --> 
<div id='chatmenu'></div>

试试这个:

<body onLoad='init()'>
    <div id='chatmenu'></div>
</body>
于 2012-07-15T15:53:07.263 回答
2

尝试这个:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>

<script>

function init() {
    reloadChat();
    setInterval (reloadChat, 5000);
}

function reloadChat() {
    $.ajax({  
        url: "chat.php",  
        cache: false,  
        success: function(response){
            $("#chatmenu").text(response);
        },  
    });  
}

</script>

<body onLoad='init()'></body>

<div id='chatmenu'>

</div>

另外,看在上帝的份上,请使用最新版本的 jQuery

于 2012-07-15T15:53:24.033 回答
1

看起来您的第一个请求$.ajax将返回“测试”,然后您将其用作$("#chatmenu").load.

尝试这个:

function reloadChat() {
    $.ajax({  
        url: "chat.php",  
        cache: false,  
        success: function(data){
            $("#chatmenu").append(data);
        },  
    });  
}

或者,如果您想替换 Christofer Eliasson 发布的方法的内容,#chatmenu您只需调用即可$("#chatmenu").load("chat.php")reloadChat

于 2012-07-15T16:08:14.650 回答
0

把它们放在一起:

<!DOCTYPE html>
<html>
  <head></head>
  <body>
    <div id="chatmenu"></div>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
    <script type="text/javascript">
      $(function() {
        setInterval (function() { 
           $("#chatmenu").load("chat.php");
        }, 5000);
      });
    </script>
  </body>
</html>
于 2012-07-15T15:54:05.937 回答