2011-10-26 51 views
0

收到$ _POST時是否有觸發函數的方法?收到POST後觸發函數

我有一個完成執行並調用另一頁的php頁面。另一頁執行某些操作並將POST更新回到此頁面。我需要能夠在收到POST時更新div。

發出ajax請求並使用「成功」回調作爲觸發器不起作用,因爲這將更新我的div只有一次。問題是這個頁面會以不規則的時間間隔多次接收POST,並且我需要一種方法在收到POST時觸發一個動作。

回答

1

使用Ajax(我會使用jQuery)並設置一個時間間隔來檢查是否有狀態改變。 「其他頁面」不應回發到第一頁,但將數據保存在「請求」區域(可能是數據庫,文件等),這些新信息/狀態將由Ajax請求定期存儲和檢索。

0

通常情況下,我會做這樣的事情...

$var_posted=0;

if($_POST['var']){$var_posted=1;}

然後...

if($var_posted==1){some_function();}

+1

當然有人應該提到,如果某人以前有另一個打開「register_globals」指令的極其糟糕的主意,那麼這是非常糟糕的想法([更多內容](http://php.net/manual/) en/security.globals.php) - 特別是濫用示例#1,這實際上與CheeseConQueso的回答幾乎相同)。 – Tadeck

+0

有趣,從來不知道......謝謝 – CheeseConQueso

0

使用AJAX,因爲你不能觸發$_POST接收在PHP中, 據我所知,你只需要upd吃了一些<div>內部HTML後職位是收到,然後你就可以用jQuery events

0

我會做到這一點通過以下方式(下面是PHP代碼,只是FYI)做到這一點:

if (!empty($_POST)) { 
    // do whatever you mean by 'updating the div' 
} 

然而,AJAX可能更合適,並且(相信與否)更加靈活。

AJAX調用將在您的服務器上承受較小的負載,並且可以單次或多次更新該框(取決於您如何編寫JS代碼) - 在這種情況下,我建議使用jQuery以簡化操作(如果您不熟悉JS )。