2014-12-19 54 views
0

我有一个运行每隔几秒钟抓住从PHP文件数据下面的代码:阿贾克斯长轮询POST数据到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格式,但是,我需要张贴也可以跨越php文件,我可以知道我可以如何在这段代码中集成吗?

谢谢!

+0

使用(http://api.jquery.com/jQuery.post/) – 2014-12-19 05:36:52

+0

啊哈哈谢谢[** **后]! jQuery post似乎与ajax版本有点不同。 – 2014-12-19 05:38:10

+0

如果您不发送任何数据,则无法创建帖子 – charlietfl 2014-12-19 05:39:01

回答

-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()功能您的POST请求的正确方法。

同时您也可以做一个POST请求使用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秒

+0

你说它应该在'document.ready'之外完成,但没有理由为什么 – charlietfl 2014-12-19 05:42:19

+0

对不起,我只是编辑我的答案。 – Lian 2014-12-19 05:44:49

+0

hi @Newbie,我确实看过ajax文章,但不知道如何设置超时时间,并且使它不断运行,无论是否存在错误 – 2014-12-19 11:58:05

0

不知道如何设置超时并使其无论是否存在错误都能连续运行

为此,您需要setinterval()

$document.ready(function() { 
    setinterval(function(){ doPoll() }, 3000); 
});