2014-12-19 48 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); 
});