1

重複の可能性:
Javascript 自動更新ページ?

わかりました...だから私はphpでメッセージングシステムを構築しようとしています.メッセージが届いたら、ページ全体をリロードせずに新しい量に変更するには、小さな数>>>メッセージ(0)<<<が必要です。jquery などでページ全体をリロードして、変更された部分だけを変更できたらいいのにと思います...それが私が本当に望んでいることです。

この数字は、ログインしたユーザーに関連するデータベース内の未読メッセージの量から来ています。画像では、新しいメッセージが着信したときに数字が表示される場所を確認できますが、ページが読み込まれるまで表示されません...少なくとも2つの異なる場所で変更を確認し、約30秒ごとにクエリを実行する必要があります. ここに画像の説明を入力

4

1 に答える 1

2

AJAXが必要です。例を次に示します。

まず、ページをロードするときに、送信されたメッセージの最後の ID を取得する必要があります。

$lastID = SELECT MAX(id) AS `id` FROM `messages` WHERE `to` = . getLoggedUserId()

次に、それを Ajax に渡す必要があります。

$(document).ready(function(){
    setInterval(function(){
        $.get("page.php?checkMessages&lastID=<?php echo $lastID; ?>", function(amount){
            if(amount > 0){
                $("span.newMessages").text(amount);
            }
        })
    },10*1000); // every 10 seconds
})

page.phpには、次のものあります。

<?php
    if( isset($_GET["checkMessages"]) ){
        $lastID = (int)$_GET["lastID"]; // just for security
        $newMessages = 'SELECT COUNT(*) AS `amount` FROM `messages` WHERE `id` > ' . $lastID . ' AND `to` = ' . getLoggedUserId()
        echo $newMessages;
        exit;
    }
?>

その後、10 秒ごとにspan、新しいメッセージの量だけがロードされます。

于 2012-11-19T12:02:29.233 に答える