2011-06-30 58 views
1

我有一個使用ajax調用來更新自己的倒數計時器。像定時器倒數至零時更新數據庫

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

東西,我想調用一個PHP函數(僅一次)使用jQuery一旦該定時器爲00:00:00,這將更新數據庫。

事情是,定時器可以在任何時候增加(這是一個拍賣),所以我不能只在X時間後運行腳本,將更新數據庫。當定時器真的達到零時,我必須調用腳本。

這怎麼辦?在jQuery中是否有某種事件?

+0

將Javascript用於定時器,並在定時器結束時調用Ajax函數,並在結束執行時刪除該函數。 –

+0

將此計時器值存儲在js變量中,並將settimeout存儲到該變量中,並在每個ajax更新上更新該變量。在超時時調用php函數。 – usmanali

+1

這需要在服務器上進行控制。如果兩個人同時打開該頁面會怎麼樣? – 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。答案的第二部分將對你有幫助。

如果您想在頁面中創建多個拍賣時鐘,您需要收集陣列中的所有拍賣ID 。然後您可以爲每個拍賣創建時鐘。

+0

但你不能將參數傳遞給onExpiry()。我認爲至少。我需要通過一個論點。那就是爲什麼我認爲使用這個插件對我沒有多大幫助。 – Tool

+0

@tool:爲什麼不能。你可以傳遞參數。看看我的編輯 – Gowri

+0

哇!謝謝,我會試試這個。 – Tool

1

如果使用AJAX完成,您已經獲得了一個到您的服務器的電話,更新計時器並知道剩下多少時間。在那裏做數據庫更新。