php - setTimeout 与 ajax 聊天

标签 php javascript jquery ajax

好的 你好 帮助帮助帮助 我遇到了 setTimeout 的一个主要问题,它不起作用,我做了一切都不起作用

我正在开发一个聊天系统,所以我需要发送和接收消息(我通过打开 2 个浏览器窗口来测试它)

这是我改过很多次的代码 我希望任何人都可以帮助我

JavaScript

$(document).ready(function()
{
    updateMsg();
});

function updateMsg()
{
$.ajax({
    url:"db.php",
    type:"POST",
    success:function(data){
    }
});
setTimeout("updateMsg()",7000);
}

function addMessages()
{
$.ajax({
    url:"db.php",
    type:"POST",
    data:"name="+$("#name").val()+"&to="+$("#user2").val()+"& cc="+$("#user").val()+"&msg="+$("#msg").val(),  
    success:function(data)
    {
    $("#t1").prepend(data);}
});

PHP

$user_select = mysql_query("SELECT * FROM User WHERE User_name = '$name'") 
                        or die(mysql_error());
$fetch_select = mysql_fetch_array($user_select);
$user_check = mysql_num_rows($user_select);

if(isset($_POST['msg']) && $_POST['msg'] != '')
{
  if ($user_check == 0)
 {
mysql_query("INSERT INTO User (User_name) VALUES ('$name')") or die(mysql_error());

$new_user = mysql_query("SELECT * FROM User WHERE User_ID = LAST_INSERT_ID()");

$fetch_new_user = mysql_fetch_array($new_user);

mysql_query("INSERT INTO Messages(From_user,Msg_body,Date_Time) 
             VALUES ('$fetch_new_user[User_ID]','$msg',NOW())") or     die(mysql_error());
  }

  else 
    {
        mysql_query("INSERT INTO Messages(From_user,Msg_body,Date_Time) 
             VALUES ('$fetch_select[User_ID]','$msg',NOW())") or   die(mysql_error());
   }
   }

  $sql = mysql_query("SELECT Msg_body,Date_Time,User_name
                FROM Messages,User
                WHERE From_user = User_ID
                AND Msg_ID = LAST_INSERT_ID()
                ORDER BY Date_Time DESC") or die(mysql_error());

while($result = mysql_fetch_array($sql))
   {
       $mydata = '<tbody id="tbody1">
 <tr class="highlight">
<td  width="30" id="bullet" align="center">
<a href="#" class="nohighlight">&#8226;</a></td>
<td width="30px" align="center" id="replyImg"><input type="image" src="css/images/reply_arrow.png" onClick="reply()"></input></td>
<td width="70" align="Left" id="time">'.$result["Date_Time"].'</td>
<td width="200" align="Left" id="from">'.$result["User_name"].'</td>
<td width="200" align="Left" id="to">'.$result[""].'</td>
    <td id="showMsg">'.$result["Msg_body"].'</td>
    <td width="200" align="left" id="group">'.$result["Grp_abr"].'</td>     
  </tr>
  </tbody>';

}

    echo $mydata;

 ?>

谢谢大家

最佳答案

there's anything wrong with setTimeout 不太可能.您可以通过让 updateMsg() 在运行时做一些可见的事情来自己检查这一点,而不是启动 Ajax 请求;执行 alert() 或更改页面上框的颜色等。

如果这是您正在运行的代码,您遇到的最明显的问题是来自 Ajax 调用的回调函数是空的,因此没有执行任何操作。

关于php - setTimeout 与 ajax 聊天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1199730/

相关文章:

javascript - Angular2 UI 路由器 -ng2 来自 Controller 的路由

javascript - 从函数中打开 fancybox

javascript - 有一个固定的列,而另一个可以在无序列表中滚动

javascript - 使用 Jasmine 测试从 jQuery AJAX 回调调用的函数

php - 属性存在但 property_exists() 返回 false;

php - 数据库查询总是返回 TRUE

javascript - 将 .NET 日期时间转换为 Javascript 日期

JavaScript 代码问题 : I am converting object to array

php - 在 PHP 中使用 ajax 预填充相应国家/地区的州详细信息

php - laravel-excel 无法使用带图像的 Blade 导出 xls 文件