2013-01-24 31 views
-1

我想打一个jQuery聊天,我无法加载聊天内容进入客舱.. 加载脚本(我使用的登录会话,所以我需要传输的用户名JS)为什么聊天内容无法加载?

<?php 
    include "protect/1.php"; 
    print "<script type=\"text/javascript\">var name = '".$_SESSION['username']."'; </script>"; 
?> 
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function(){ chat_update(name) }); 
    setInterval("chat_update("+name+")",1000); 
    function chat_update(user) { 
     $.post("response.php",{ username:user },function(data){ 
      $(".chatbox").html(data); 
    } 
</script> 

而且在div:

<div class="chatbox"></div> 

如果我打开response.php(通过发送后值的形式),它加载的所有消息。所以这是非常令人迷惑..

编辑:要添加response.php,也许问题是有,但我不这么认为..

<?php 
include "functions.php"; 
include "sql.php"; 
$iQuery = mysql_query("SELECT * FROM chat ORDER BY id ASC"); 
while($row = mysql_fetch_array($iQuery)) { 
    if($row["to"] != null) { 
     if($_POST["username"] == $row["to"] || $_POST["username"] == $row["sender"]) 
      echo "<span class=\"text\">".$row["date"]." | ".$row["sender"].": ".$row["message"]."</span><br>\n"; 
    } 
    switch(getbyUser($_POST["username"],"level")) { 
     case 1: echo "<span class=\"text\">".$row["date"]." | ".$row["sender"].": ".$row["message"]."</span><br>\n"; break; 
     case 2: echo "<span class=\"text\">".$row["date"]." | ".$row["sender"].": ".$row["message"]."</span><a href=\"?page=admin/delmsg&msg=".$row["id"]."\"><img src=\"res/del.png\"></a><br>\n"; break; 
     case 3: 
     case 4: echo "<span class=\"text\">".$row["date"]." | ".$row["sender"].": ".$row["message"]."</span><a href=\"?page=admin/delmsg&msg=".$row["id"]."\"><img src=\"res/del.png\"></a><a href=\"?page=admin/editmsg&msg=".$row["id"]."\"><img src=\"res/edit.png\"></a><br>\n"; break; 
    } 
} 
mysql_free_result($iQuery); 
?> 
+0

首先,你的chatbox是div吗?它如何从用户那里收到任何消息?其次,你试图达到的总体目标是什么? –

+0

“$(”。chatbox“)。html(data);”多数民众赞成如何即时尝试加载数据从response.php – user2008287

+0

好吧,它是“加载所有”的消息,即使那些用户名不等于'$行[“至”]'或'$行[“发件人”]' ? –

回答

1

您的$.post调用一个语法错误,更改为:

function chat_update(user) { 
    $.post("response.php",{ username:user },function(data){ 
     $(".chatbox").html(data); 
    }); // <-- this was missing 
} 

第二个问题是在这里:

setInterval("chat_update("+name+")",1000); 

通过传递name就像你是通过荷兰国际集团的不带引号的字符串,例如:

chat_update(John) // <-- the string doesn't have quotes 

速战速决是添加单引号,但你需要确保用户名不能包含引号本身。

setInterval("chat_update('"+name+"')",1000); 
+0

感谢:D dat支架.. – user2008287

2

假设是你生活的jQuery代码的$。员额的要求是无效,这就是为什么它不返回任何数据。

你还没有关闭关闭功能(数据)部分,因此它应该是

function chat_update(user) { 
    $.post("response.php",{ username:user },function(data){ 
      $(".chatbox").html(data); 
    }); 
}