好的 你好 帮助帮助帮助 我遇到了 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">•</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/