2011-06-30 2 views
1

私はajax呼び出しを使用して自分自身を更新するカウントダウンタイマーを持っています。タイマーカウントがゼロになるとデータベースを更新します

<div class="timer5">--:--:--</div> 

ような何かが私はタイマーが00:00:00になったら、データベースを更新するにjQueryを使用してPHPの機能を(一度だけ)呼び出したいです。

問題は、いつでもタイマーを増やすことができます(オークションです)。そのため、DBを更新するX時間後にスクリプトを実行することはできません。タイマーが実際にゼロになったらスクリプトを呼び出さなければなりません。

どうすればいいですか? jQueryには何らかのイベントがありますか?

+0

タイマーにJavascriptを使用し、タイマーが終了するとAjax関数を呼び出し、実行が終了すると関数を削除します。 –

+0

このタイマー値をjs変数にも格納し、settimeoutにそれを保存し、すべてのajax更新でその変数を更新します。タイムアウト時にPHP関数を呼び出します。 – usmanali

+1

これはサーバー上で制御する必要があります。 2人で同時にページを開いた場合はどうなりますか? – Dereleased

答えて

1

私の経験では、jquery countdown pluginはこれらのものに適しています。このプラグインを使用すると簡単にこれを行うことができます。

var auction_id = array('1','2','3','4','5') // auction ids in array 

jQuery(auction_id).each(function(key, val){ 

    jQuery('.countbox-'+val).countdown({ 
    //other options ref in plugin link 
    onExpiry: function(){ 

    sold(val); // passing argument 

    //ajax call goes here to update db 

    } 
    }); 
} 

時計を更新するには、すでにhereと回答しています。答えの2番目の部分は、あなたのために完全なヘルプになります。

複数のオークション時計をページに作成する場合は、すべてのオークションIDを にまとめて収集する必要があります。オークションごとに時計を作成できます。

+0

しかし、onExpiry()に引数を渡すことはできません。私は少なくともatleastだと思う。そして私は議論をする必要があります。私はこのプラグインの使用が私にはあまり役に立たないと思うのはなぜですか。 – Tool

+0

@tool:あなたは引数を渡すことはできません。私の編集を見て – Gowri

+0

うわー!ありがとう、私はこれを試してみます。 – Tool

1

AJAXを使用して既に完了している場合は、タイマーを更新して残り時間を知っているサーバーに電話がかかっています。そこにデータベースを更新しますか?

関連する問題