2011-10-26 2 views
0

$ _POSTを受信したときに関数をトリガする方法はありますか?POST受信時に関数をトリガする

実行を終了し、別のページを呼び出すPHPページがあります。他のページは特定のアクションとPOST更新をこのページに戻します。私は、POSTを受け取ったときにdivを更新できるようにする必要があります。

ajaxリクエストを作成し、 "成功"コールバックをトリガーとして使用すると、divが1回だけ更新されるため、機能しません。問題は、このページが不規則な間隔でPOSTを複数回受信し、POSTが受信されるたびにアクションをトリガする方法が必要なことです。

答えて

1

ijax(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) - 特に、実際にCheeseConQuesoの回答とほとんど同じである誤用の例#1)。興味深い、 – Tadeck

+0

それを知ったことはありません...ありがとう – CheeseConQueso

0

あなたがすることができないので、AJAXを使用しますトリガー$_POST PHPで受信 私はあなたがちょうど

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

:(以下単にFYI、PHPコードである)ポストが受け取っている、とあなたはjQueryのevents

0

でそれを行うことができます後、私は、次の方法でこれを行うと、いくつかの<div>内部HTMLを食べましたしかし、AJAXはより適切かもしれませんし、より柔軟に(信じてもしなくても)です。

AJAXコールはサーバの負荷が小さくなり、JSコードの書き方によっては1回または複数回のボックスの更新が可能です。そのような場合は、単純にjQueryを使用することをおすすめします(JS )。

関連する問題