2017-03-05 50 views
0

我有一個倒計時器,應該發射一個函數,當它完成計數,我已經加載了一個php頁面。問題是定時器函數在定時器完成倒計時之前執行php更新。如果我想在定時器完成時更新mysql,有沒有更好的方法來做到這一點?我試過ajax,但它變得有問題。Mysql更新發射過早jQuery的倒數計時器

$('#timerinsert').countdown(plustime) 
.on('update.countdown', function(event) { 
    $(this).html(event.strftime('%M:%S')); 
}) 
.on('finish.countdown',function(event) { 
    $(this).html("<?php include "timerdone.php"; ?>"); 
}); 

的PHP:

$thegamesql = "UPDATE MYSQL FUNCTION GOES HERE"; 
mysql_query($thegamesql) or die (mysql_error()); 
+1

絕對不能做它這種方式..該PHP文件將被包含在頁面加載並啓動更新查詢。 finish.countdown實際上應該在什麼時候啓動?爲什麼ajax方法不起作用?你有你的嘗試樣本嗎? – Rick

+0

嘗試在[睡眠](http://php.net/manual/en/function.sleep.php)在PHP fie延遲 – gaurav

+0

阿賈克斯導致超時錯誤和崩潰我的瀏覽器,因爲我有一個倒數計時器,需要我有一個1000ms的setInterval/setTimeout讓定時器正常工作,這是發送太多的請求到服務器和崩潰的東西。我調整了所有腳本以利用JavaScript,但我仍然要求訪問數據庫,所以這裏存在我的問題。 – Dustin

回答

0

待您finish.countdown功能火災正常,沒有任何理由,這不應該雅工作..

$('#timerinsert').countdown(plustime) 
    .on('update.countdown', function(event) { 
     $(this).html(event.strftime('%M:%S')); 
    }) 
    .on('finish.countdown', function(event) { 
     $.ajax({ 
      url: 'timerdone.php' 
     }).done(function(html) { 
      $(this).html(html); 
     }); 
    }); 
+0

我希望這可以工作,但它只是在00:01凍結計時器而沒有任何反應,檢查數據庫並且UPDATE不會觸發。 – Dustin

+0

這將工作..必須有別的事情正在嘗試..嘗試添加「alert('測試');」finish.coundown「函數,看看是否火災..這將告訴我們這個問題是在你的ajax call。您是否也看到任何控制檯錯誤?是您的timerdone.php路徑正確嗎? – Rick

+0

警報有效。無控制檯錯誤。路徑正確。我嘗試添加簡單: <?php echo「THIS WORKS」;? >並沒有其他的timerdone.php,但沒有顯示。 – Dustin