2016-07-12 79 views
1

好吧,所以我想爲我的網站創建一個簡單的聊天,但我不知道如何使它有人發送消息時,它會顯示在其他人的聊天,所以例如我在一個瀏覽器上打招呼,但它在我手動刷新頁面之前,不會顯示在其他瀏覽器上。如何使用javascript刷新聊天?

我知道有AJAX刷新聊天的div,但我試過的一切似乎都不起作用,我不知道爲什麼。

這裏是我的索引文件

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>  
<script type="text/javascript"> 
setInterval(refreshMessages, 1000); 
function refreshMessages(){ 
$.ajax({ 
url: 'chat.php', 
type: 'GET', 
dataType: 'html' 
}) 
.done(function(data) { 
$('#chat').html(data); // data came back ok, so display it 
}) 
.fail(function() { 
$('#chat').prepend('Error retrieving new messages..'); 
}); 
} 
</script> 

<div id="chat"></div> 

它不會顯示在所有的聊天,我不知道爲什麼,因爲該文件是在同一文件夾中的index.php

如果我把聊天代碼放在索引文件裏面就行了。

這裏是chat.php文件

`$messages = get_msg(); 
foreach($messages as $message) { 
echo '<p><strong>' . $message['sender'] . ' - </strong></p>'; 
echo '<p>' . $message['message'] . '<br /><br />'; 
}` 
+0

你忘了把它放在'$(document).ready()'func裏面重刑? –

+0

這可能會幫助你http://stackoverflow.com/questions/21600166/auto-refresh-included-php-file-inside-a-div –

+0

只要你知道,這將是致命的在你的網絡服務器,如果你嘗試它是這樣的;-)。但是,這是我在Ajax有可能的情況下所做的第一件事情之一。老好的IE6天啊。 –

回答

0

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>  

不能使用DONE失敗。這些都是不可用的jQuery 1.3.0

使用,而不是:成功錯誤

參考

A.沃爾夫評論嘗試看看到how-do-i-implement-basic-long-polling

只爲Ajax調用校正片段:

setInterval(refreshMessages, 1000); 
function refreshMessages() { 
    $.ajax({ 
    url: 'chat.php', 
    type: 'GET', 
    dataType: 'html', 
    success: function(data) { 
     $('#chat').html(data); // data came back ok, so display it 
    }, 
    error: function() { 
     $('#chat').prepend('Error retrieving new messages..'); 
    } 
    }); 
} 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script> 

<div id="chat"></div> 
+0

即使我嘗試了很多不同的方式仍然不想加載。甚至改變jQuery的版本。像問題是它從字面上不想加載文件聊天。php – Potato

+0

我已經把它放到了10秒,而且什麼也沒有。只有表格 – Potato

+0

@Pato你必須至少看到錯誤信息!如果您至少沒有看到錯誤消息,則問題不依賴於ajax調用。也嘗試刪除計時器並調用按鈕上的ajax。 – gaetanoM

0

由於您使用jQuery 1.3設置你的間隔setInterval

setInterval(refreshMessages, 1000); 

function refreshMessages() 
{ 
    $.ajax({ 
     url: 'chat.php', 
     type: 'GET', 
     dataType: 'html' 
    }) 
    .done(function(data) { 
     $('#chat').html(data); // data came back ok, so display it 
    }) 
    .fail(function() { 
     $('#msgs').prepend('Error retrieving new messages..'); // there was an error, so display an error 
    }); 
} 
+0

可悲的是它仍然不起作用 – Potato