我有以下代码每隔几秒运行一次以从php文件中获取数据:
<script>
$(document).ready(function(){
function doPoll(){
var cid= <?php echo $user2 ?>;
$.post('chatfunction.php') .done(function(data) { /* process */
document.getElementById("#chatarea").innerHTML = data;
}) .always(function() {
setTimeout(doPoll, 5000);
});
}
});
</script>
这不是通常的ajax格式,但是,我需要将一个变量POST到php文件中,我可以知道如何在这段代码中集成它吗?
谢谢!
答案 0 :(得分:0)
不确定如何设置超时并使其无论是否出现错误都会连续运行
为此,您需要setinterval()
:
$document.ready(function() {
setinterval( function(){ doPoll() }, 3000 );
});
答案 1 :(得分:-1)
您应该将function doPoll()
放在document.ready
它应该是这样的:
$document.ready(function() {
setInterval(doPoll(), 5000); // It will run doPoll() function every 5 seconds
});
function doPoll(){
// and the rest of the code
}
这是调用函数或在doPoll()
函数上触发发布请求的正确方法。
您也可以使用AJAX进行发布请求
$.ajax({
type: "POST",
url: "YOU_URL_HERE", // your URL
data: {param1:"params1", params2:"params2", params3:"params3"}, // parameters you need to pass
success: function(){
alert("SUCCESS"); // If success
},
error: function() {
alert("ERROR"); // If error
}
});
修改:
添加了setInterval,以便doPoll()
函数每5秒执行一次