2015-03-02 44 views
1

當時間到了,我需要如何更新MySQL表的幫助?我得到了這樣的代碼:如何製作倒數計時器並在時間到時更新MySQL記錄?

<script language="JavaScript"> 
var timeleft; 
var nextdue; 
var tick = 1000; 
function parseTime(t) { 
    var tt = ("0:00:" + t); 
    tt = tt.split(":").reverse(); 
    return (tt[0] * 1000) + (tt[1] * 60000) + (tt[2] * 3600000); 
} 
function zeroPad(n) { 
    if (n < 10) return "0" + n; 
    return "" + n; 
} 


function makeTime(t) { 
    if (t < 0) return "0:00:00"; 
    var tt = t + 999; 
    return Math.floor(tt/3600000) + ":" + 
     zeroPad(Math.floor(tt/60000) % 60) + ":" + 
     zeroPad(Math.floor(tt/1000) % 60); 
} 

function startTimer() { 
    nextdue = new Date().getTime(); 
    timeleft = parseTime(document.timerform.timerbox.value); 
    runTimer(); 
} 

function runTimer() { 
    document.timerform.timerbox.value = makeTime(timeleft); 
    if (timeleft <= 0) alert("Time's up!"); 
    else { 
     var timecorr = (new Date().getTime()) - nextdue; 
     if (timecorr > 0 && timecorr < 3000) { 
      timeleft -= (tick + timecorr); 
      nextdue += tick; 
      if (timeleft < 1) setTimeout("runTimer()", tick + timeleft); 
      else setTimeout("runTimer()", Math.max(1, tick - timecorr)); 
     } 
     else { 
      nextdue = (new Date().getTime()) + tick; 
      timeleft -= tick; 
      if (timeleft < 1) setTimeout("runTimer()", tick + timeleft); 
      else setTimeout("runTimer()", tick); 
     } 
    } 
} 
</script> 

而且,當我放置一個PHP變量來加載時間時,它工作。但是,我想使用它如下:

  • 當它達到0秒,我希望它更新mySQL表,然後回到同一頁。

這可能嗎?謝謝。這是我第一次來這裏。

+1

使PHP腳本,將做數據庫的東西,然後用你的計數器達到零時調用它調用ajax調用。使用ajax,你也可以根據需要傳遞一些參數。 – MilanG 2015-03-02 14:57:56

+3

我認爲「he.lp」是爲了避免錯誤的標題過濾器?如果是這樣,請不要這樣做 - 問題不需要尋求幫助,因爲它是隱含的(並明確要求它聽起來像乞討,所以它最好避免)。 – halfer 2015-03-02 14:59:42

+0

如果你不熟悉AJAX,這個鏈接可能會有所幫助:http://www.w3schools.com/ajax/default.asp – BlackCetha 2015-03-02 15:16:40

回答

0

我建議你使用像jQuery這樣的庫,或者像Backbone.js這樣的框架來讓你的生活在處理JavaScript任務時更容易一些。

要做你想做的事(如果我正確地理解了這個問題),你需要像下面這樣的東西。在下面的例子中,我會假設你的網頁中包含了jquery。

/* 
* Your time-tracking code here 
*/ 

// If the time left is 0 seconds/milliseconds/whatever 
if(time_left === 0) { 
    // then do an AJAX request to the server page that handles updating the mysql table 
    $.ajax({ 
     type: operation, // (GET, POSt, etc) 
     url: url, // The location of your php file relative to your root URL 
     data: {}, // the data you want the server (php file) to receive 
     success: function(data){ 
      // Whatever you want to happen when the server succeeds with the operation 
     } 
    }); 
} 

在你的php文件中,你只需要一個函數,根據需要更新你的表格。

0

嗨,每一個我發現它謝謝你,這是我的問題的答案 當時間到達0這個頁面,然後它返回到相同的頁面,並重復,直到沒有更多的時間。 COOOL。再次感謝

if (timeleft<=0)window.location.href="./mod.php";