Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用javascript刷新聊天记录?_Php_Jquery_Ajax_Chat - Fatal编程技术网

Php 如何使用javascript刷新聊天记录?

Php 如何使用javascript刷新聊天记录?,php,jquery,ajax,chat,Php,Jquery,Ajax,Chat,好的,所以我正在尝试为我的网站创建一个简单的聊天,但我不知道如何使它成为这样,当有人发送消息时,它将显示在其他人的聊天中,例如,我在一个浏览器上打招呼,但它不会显示在另一个浏览器上,直到我手动刷新页面 我知道有AJAX可以刷新聊天室的div,但我尝试的一切似乎都不起作用,我也不知道为什么 这是我的索引文件 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.

好的,所以我正在尝试为我的网站创建一个简单的聊天,但我不知道如何使它成为这样,当有人发送消息时,它将显示在其他人的聊天中,例如,我在一个浏览器上打招呼,但它不会显示在另一个浏览器上,直到我手动刷新页面

我知道有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>

设置间隔(刷新消息,1000);
函数刷新消息(){
$.ajax({
url:'chat.php',
键入:“GET”,
数据类型:“html”
})
.完成(功能(数据){
$('#chat').html(数据);//数据返回正常,所以显示它
})
.fail(函数(){
$('#chat').prepend('检索新邮件时出错…);
});
}
它根本不显示聊天,我也不知道为什么,因为该文件与index.php位于同一文件夹中

如果我把聊天代码放在索引文件中,它就可以正常工作

下面是chat.php文件

`$messages = get_msg();
foreach($messages as $message) {
echo '<p><strong>' . $message['sender'] . ' - </strong></p>';
echo '<p>' . $message['message'] . '<br /><br />';
}`
`$messages=get_msg();
foreach($messages作为$message){
回显“”.$message['sender'.-”;
回显“”.$message['message']”。

; }`
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
    });
}

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
    });
}

因为您使用的是jQuery 1.3:

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

因为您使用的是jQuery 1.3:

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



您忘记将其放入
$(document).ready()
函数中?这可能会帮助您知道,如果您这样尝试,这将对您的Web服务器造成致命影响;-)。但这是当Ajax成为可能时我做的第一件事之一。啊,很好的旧IE6时代。看看WebSocket,因为这是此类应用程序的最佳实践。除非一个“正常工作”的应用程序就足够了(例如,仅用于测试或摆弄)。如果您的服务器响应时间超过1秒,您的代码将失败。搜索ajax长轮询(使用超时,而不是间隔!)如果websockets不是您的选项,您忘记将其放入
$(document).ready()
函数中?这可能会帮助您知道,如果您像这样尝试,这将对您的Web服务器造成致命影响;-)。但这是当Ajax成为可能时我做的第一件事之一。啊,很好的旧IE6时代。看看WebSocket,因为这是此类应用程序的最佳实践。除非一个“正常工作”的应用程序就足够了(例如,仅用于测试或摆弄)。如果您的服务器响应时间超过1秒,您的代码将失败。搜索ajax长轮询(使用超时,而不是间隔!),如果WebSocket不是您的选项,即使我尝试了很多不同的方法,您仍然不想加载。甚至更改jquery的版本。问题是它根本不想加载chat.phpI文件。我们把它设置为10秒,但仍然没有加载任何文件。只有form@Potato您必须至少看到错误消息!如果您至少没有看到错误消息,那么问题并不取决于ajax调用。试着移除计时器,用一个按钮调用ajax。先生,你太棒了。非常感谢,我已经试了一个小时了,现在成功了!对抱歉,这个网站还是新手,尽管我尝试了很多不同的方法,但仍然不想加载。甚至更改jquery的版本。问题是它根本不想加载chat.phpI文件。我们把它设置为10秒,但仍然没有加载任何文件。只有form@Potato您必须至少看到错误消息!如果您至少没有看到错误消息,那么问题并不取决于ajax调用。试着移除计时器,用一个按钮调用ajax。先生,你太棒了。非常感谢,我已经试了一个小时了,现在成功了!对对不起,这个网站还是新的