更新聊天每秒PHP

时间:2016-03-27 16:21:14

标签: php chat

你好,我有脚本,但这不工作我不能更新聊天你可以帮助我每秒从数据库更新聊天(请没有uppate div only text)

的index.php

<html>
    <head>
        <script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
        <script>
        $(document).ready(function(){

        setTimeout(
        function() {updateChat();},
        1000);

        function updateChat() {
        $.get("read.php", function(data)
        {
          $("#Show_Data").html(data);
        });
        }
        });
        </script>
    </head>
    <body>
        <div id="Show_Data"></div>
    </body>
</html>

read.php

<?php
include("config.php");

$Data = "SELECT * FROM chat ORDER BY Time ASC";
$Result = mysqli_query($Connection, $Data);

while($row = mysqli_fetch_array($Result,MYSQLI_ASSOC))
{
    echo '</br>' .$row['name'];
}

mysqli_free_result($Result);
mysqli_close($Connection);
?>

这是我的代码但是我的代码在数据库中插入数据时我的代码没有更新html中的数据

2 个答案:

答案 0 :(得分:1)

选项1:

<html>
    <head>
        <script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
        <script>
        $(document).ready(function(){


        setTimeout(
        function() {updateChat();},
        1000);

        function updateChat() 
        {
         $.get("read.php")
         .done(function(data)
         {
           //You can do futher checks here....
           $("#Show_Data").html(data);
           setTimeout(function() {updateChat();},1000);
         })
         .fail(function()
         {
            //error 404 or 500
         });
        }
      });
        </script>
    </head>
    <body>
        <div id="Show_Data"></div>
    </body>
</html>

在上面的代码中,当调用出现问题时它会停止并且不会继续执行。

选项2:

<html>
    <head>
        <script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
        <script>
        $(document).ready(function(){

        setInterval(
        function() {updateChat();},
        1000);

        function updateChat() {
        $.get("read.php", function(data)
        {
          $("#Show_Data").html(data);
        });
        }
        });
        </script>
    </head>
    <body>
        <div id="Show_Data"></div>
    </body>
</html>

代码aboce执行ajax调用每1000毫秒,无论是否成功通话

答案 1 :(得分:0)

您需要使用 setInterval 而不是setTimeout(它只运行一次)。

如果这没有帮助,请发布您获得的任何PHP / JavaScript错误 要确保将PHP错误设置为显示,请将error_reporting(E_ALL)添加到脚本的顶部。

要查看JavaScript错误,请在浏览器中打开开发人员工具(F12),然后转到控制台