我无法使用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秒提醒我一次,所以我认为它与load语句有关。
答案 0 :(得分:4)
立即使用.load()
,无需先发出Ajax请求:
function reloadChat() {
$("#chatmenu").load("chat.php");
}
<强>更新强>
我注意到在您的示例代码中,您在div
元素之前关闭了body标记。
<body onLoad='init()'></body> <!-- This ain't right -->
<div id='chatmenu'></div>
请改为尝试:
<body onLoad='init()'>
<div id='chatmenu'></div>
</body>
答案 1 :(得分: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
答案 2 :(得分:1)
来自$.ajax
的第一个请求会返回'test',然后您将其用作$("#chatmenu").load
的网址。
试试这个:
function reloadChat() {
$.ajax({
url: "chat.php",
cache: false,
success: function(data){
$("#chatmenu").append(data);
},
});
}
或者,如果您要替换#chatmenu
Christofer Eliasson发布的方法的内容,您只需拨打$("#chatmenu").load("chat.php")
中的reloadChat
即可。
答案 3 :(得分: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>