これは私がやったことです、あなたがマークした答えを使用しましたが、私はそこに変更することがいくつかあると思います。メインページの (データベース内の何かが変更された場合に更新する) 私は自分のデータベース内でテーブルを作成しました。このテーブルでは、rowCounterという行を作成しました。 チェックしているテーブルの行数が変更されたときに、rowCounterが更新されています。 私のコードは2つのブロックにあります。 1つは私の設定から番号を与えている> rowCounter ともう一つは私にテーブルの現在の番号を与えるスクリプトです。それらが等しくなければ、私はページをリフレッシュします。
これは最初に必要なファイルです。メインページで
script_to_return_latest_pageGenID.php
// here you will make you connection query.
$result = mysql_query("SELECT rowCounter FROM setting WHERE `id`='2'");
$update = mysql_fetch_assoc($result);
echo implode($update);
$count=mysql_query("SELECT `id` FROM log_".$datestamp."")or die(mysql_error);
$number = mysql_num_rows($count);
//echo $number;
$countFromSetting=mysql_query("SELECT `rowCounter` FROM setting WHERE id='2'")or die(mysql_error);
$numberFromSetting=implode(mysql_fetch_assoc($countFromSetting));
if($number != $numberFromSetting)
{
mysql_query("UPDATE setting SET `rowCounter`='$number' WHERE `id`='2'")or die(mysql_error);
}
それを呼び出すあなたはスクリプトの前にそれを置く、私が書いたコードの二つのブロックを書き込みます。このコードの後
$countFromSetting=mysql_query("SELECT `rowCounter` FROM setting WHERE id='2'")or die(mysql_error);
$numberFromSetting=implode(mysql_fetch_assoc($countFromSetting));
あなたは数字が、それはページを更新します等しくないかどうかを確認、PHPページ数秒ごとに照会するスクリプトを置きます。
var pageGenID = "<?php echo $numberFromSetting; ?>";
var processUpdate = function(response) {
var x=response;
//console.log(pageGenID); by removing the remarks you will see the compared numbers all the time.
//console.log(x);
if (pageGenID != x)
{
//replace_current_data_with_new_via_ajax();
pageGenID = response;
window.location.reload();
}
}
var checkUpdates = function()
{
serverPoll = setInterval(function()
{
$.get('script_to_return_latest_pageGenID.php',
{ lastupdate: 1 },
processUpdate, 'html');
}, 5000) };
$(document).ready(checkUpdates);
まず第一に、jQueryのは仕方が追加されません。このような単純なタスクにはあまりにも多くのオーバーヘッドが必要です。 AJAXルートを使用する場合は、単に 'XMLHttpRequest'オブジェクトを使用してください。また、私の記事で述べたように、javascriptやMySQLの注入の危険性が高まっているため、あなたの 'pageGenID' *サーバサイド*のようなものを保つようにしてください。 – Qix
あなたのPHPでそれをエコーする必要があります返すことはありません –
@OfirAttia:うん、エコーは、JavaScriptを生成したPHPスクリプトによって行われました。私はそれを明確にすべきだった。 – Kalessin