我想每隔3秒从html文件(使用jQuery)调用php文件。
在以下电话中我错了:
<html lang="en">
<head>
<script type="text/javascript">
jQuery('document').ready(function() {
setInterval(function() {
jQuery.ajax({
url: "index.php",
type: "POST",
dataType: "HTML",
success: function(data) {
document.getElementById("mainImage").src = data;
},
});
}, 3000);
});
</script>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<img id="mainImage">
</body>
</html>
答案 0 :(得分:3)
我的代码中没有包含jQuery库的内容。你需要这样做。另外,我没有看到任何设置为每隔3秒调用一次该函数。
添加调用以加载jQuery lib后,
将您的功能包装在此:
setInterval(function() {
jQuery.ajax({
url: "index.php",
type: "POST",
dataType: "HTML",
success: function( data ) {
jQuery('body').append(data);
},
error: function(jqXHR, data ) {
alert ('Ajax request Failed.');
}
});
}, 3000); //3 seconds
答案 1 :(得分:1)
您周围似乎没有<script language="javascript" type="text/javascript"></script>
个标记,而您的HTML结构似乎已关闭。嘿,你甚至没有加载jQuery
所以也加了。还要注意我也将2000(这是2秒)改为3000(这是3秒),因为这是这个问题的标题。所以这是重新设计的样本:
<html lang="en">
<head>
<title></title>
<meta charset="utf-8" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script language="javascript" type="text/javascript">
jQuery('document').ready(function() {
setInterval(function() {
jQuery.ajax({
url: "index.php",
type: "POST",
dataType: "HTML",
success: function(data) {
document.getElementById("mainImage").src = data;
},
});
}, 3000);
</script>
</head>
<body>
<img id="mainImage">
</body>
</html>
答案 2 :(得分:1)
正如其他人所提到的,请确保jQuery实际包含在您的网页上。我还将您的代码更改为更可靠,因为它只会在第一次调用成功执行3秒后再次调用脚本:
<script>
jQuery('document').ready(function() {
updateSrc();
});
function updateSrc() {
jQuery.ajax({
url: "index.php",
type: "POST",
dataType: "HTML",
success: function(data) {
document.getElementById("mainImage").src = data;
// once the ajax call is returned, call the function again after 3 seconds
setTimeout(updateSrc(), 3000);
},
});
}
</script>