我想在php頁面上獲得一個div,每5秒刷新一次。如何在有參數時使用setInterval()?
在HTML我有:編輯:新的腳本功能
<script>
$(document).ready(function(){
var callAjax = function(){
$.ajax({
method:'get',
url:'game.php',
success:function(data){
$("#read_chat").html(data);
}
});
}
setInterval(callAjax, 5000);
});
</script>
和函數(在PHP塊)我試圖刷新爲:
echo" <div class='read_chat' >";
function get_messages($db){
//get messages
$get_m = "select user_name, message, time, character_name from Chat NATURAL JOIN User LEFT OUTER NATURAL JOIN Character where Chat.game_id =".$_SESSION[game_id]." ORDER BY Chat.chat_id;";
$messages = $db->query($get_m);
//display messages
foreach ($messages as $row) {
//display each message in row
if ($row['character_name'] == NULL){
echo "<div class='left'>" . $row['user_name'] . ": </div>";
}
else {
echo "<div class='left'>" . $row['character_name'] . ": </div>";
}
echo "<div class='center'>" . $row['message'] . "</div>";
echo "<div class='right'>" . $row['time'] . "</div>";
}
}
echo "</div>";
的這種顯示器是隻有沒有任何內容的CSS塊。如果我只是調用get_messages($ db)加載數據庫的所有聊天。 如何讓這個div自動刷新?謝謝!
編輯: 該文件的名稱是「game.php」,PHP函數是「get_messages()」。
因爲我看了看記錄: http://www.elated.com/articles/javascript-timers-with-settimeout-and-setinterval/
和
Pass parameters in setInterval function
您應該使用ajax來更新您的div,使用來自php的新數據 – vasilenicusor
'get_messages'是一個PHP函數。 PHP首先運行,然後用CSS,HTML,JS呈現。 JS不執行PHP函數。爲了讓這個工作使用AJAX。 – Class