2010-11-18 1 views
2

私は設定したくない新しいデータベースエントリが追加されたときに.phpページのリフレッシュ(再読み込み)をトリガする方法は?

while ($latestRow=mysql_fetch_row($result)) 
{ $data .= "<tr><td>".$latestRow[0]." </td><td> ".$latestRow[1]."</td></tr>\n"; 
} 

、ウェブページとしてテーブルを表示

<?php $userid=$_POST["userid"]; $timestamp=$_POST["timestamp"]; $addALine="INSERT INTO myDatabase (userid,timestamp) VALUES ('$userid','$timestamp')"; 
$intoDatabase=mysql_query($addALine); ?> 

とshowUpdate.php、MYSQLデータベースにinsertUpdate.phpの挿入、表の行を持っています<?php header('Refresh: 8'); ?>のような数秒ごとの自動リフレッシュ。

insertUpdate.phpによって挿入されたデータベースに新しいエントリがある場合、showUpdate.phpのリフレッシュ/リロードをトリガーする方法はありますか?助けてくれてありがとう!

+0

jsライブラリを使用していますか? jquery? –

答えて

3

Webページはステートレスです。応答を送信すると、それはすべて終了です。

新しいレコードについてウェブページが知りたい場合は、新しいレコードがあるかどうかを尋ねるためにサーバをポーリングする必要があります。サーバーから提供ページに通知を送信することはできません。

+0

しかし、HMTL5を使えばすぐにできるようになります。 WebSocketsとウィンドウイベント –

0

(バックグラウンドで)AJAXを使用してデータベースをポーリングし、新しいエントリが追加されたときにページを更新することができます。

httpがステートレスなプロトコルであるため、リフレッシュまたはポーリング以外のオプションはありません。

0

XMLHttpRequestを使用してページの状態を保持します。

setInterval(function(){ // every 10 seconds 
    // using jQuery 
    $('#container').load('/showUpdate.php'); // load php page into #container 
}, 10000); 

データベースが変更されたときのWebページにはイベントはありません。

関連する問題