2013-03-06 85 views
0

我有我的PHP文件,其中包含我的方法來更新數據庫。然而,在JavaScript中,我如何使它每隔5秒就說它「訪問」此頁面,以便它的內容得到更新。使用Javascript的PHP更新

這裏是我的update.php文件:

<?php include('config.php') ?> 

<?php 
mysql_query("UPDATE paint SET paint_points='test'") or die(mysql_error()); 
echo "Updated"; 
?> 

對不起,我不熟悉的術語。

感謝

+0

您需要使用AJAX。 – dfsq 2013-03-06 18:43:59

+0

使用javascript setInterval和AJAX發送請求到php進行更新 – Alireza41 2013-03-06 18:45:10

+0

檢查一個JavaScript框架,如jQuery($ .ajax),你需要做所有的代碼。 – Bertrand 2013-03-06 18:45:24

回答

2

使用setInterval功能有(一)JAX要求,每5秒中的javascript:

//syncronized jax: 
function myjax() { 
    var oXhr = new XMLHttpRequest(); 
    oXhr.open("POST", "yourphp.php", false); 
    oXhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8"); 
    oXhr.send(null); 
} 

//set an interval each 5 seconds to call your myjax method 
setInterval(function() { myjax(); }, 5000); 

在這個例子中,要求是同步的,但如果你希望因此它可能是異步的。

+0

非常好,這正是我一直在尋找的! – Bushell 2013-03-06 18:52:37

1

最簡單的情況是重新加載頁面:

<script type="text/javascript"> 
setInterval(function() { location.reload(true); }, 5000); 
</script> 

你可以得到發燒友,如果你使用一個AJAX調用抓取網頁。

+1

我不認爲OP正在重新加載整個頁面。 – 2013-03-06 18:46:52

+0

@SudiptaChatterjee然而,它可能並不清楚。如果他們對ajax感覺不舒服,可以將其封裝到iframe中。 – Candide 2013-03-06 18:48:52

0

使用jQuery:

(function() { 
    var updateAgain = arguments.callee; 
    $.get('/url/to/script.php', function() { 
     setTimeout(updateAgain, 5000); 
    }); 
})(); 

的這種過度setInterval的優點是,直到請求完成它不會開始數到5秒;如果請求需要一秒或兩秒以上,這一點很重要。如果請求失敗,它也會停止(這可能會或可能不會有好處)。