-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);
?>
4

2 に答える 2

2

それがあなたのライブjqueryコードであると仮定すると、$.postリクエストは無効であるため、データが返されません。

関数(データ)セクションを閉じていないので、そうする必要があります

function chat_update(user) {
    $.post("response.php",{ username:user },function(data){
            $(".chatbox").html(data);
    });
}
于 2013-01-24T17:12:08.293 に答える
1

呼び出しに構文エラーがあります。次の$.postように変更してください。

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

2番目の問題は次のとおりです。

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

like を渡すnameことで、引用符で囲まれていない文字列を渡します。次に例を示します。

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

簡単な修正は一重引用符を追加することですが、ユーザー名に引用符自体を含めないようにする必要があります。

setInterval("chat_update('"+name+"')",1000);
于 2013-01-24T17:13:11.380 に答える