2017-03-05 16 views
0

私はPHPページを読み込んだカウントを終了したときに関数を起動するはずのカウントダウンタイマーを持っています。問題は、タイマーがカウントダウンされる前に、タイマー関数がphpの更新を実行することです。タイマーが完了したときにmysqlのみを更新したい場合は、これを行うためのよりよい方法がありますか? Iveは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

遅れのためにphp fieの[sleep](http://php.net/manual/en/function.sleep.php)で試してください – gaurav

+0

ajaxがタイムアウトエラーを引き起こしてブラウザをクラッシュさせました。カウントダウンタイマーが必要ですタイマーが正しく機能するためのsetInterval/setTimeoutが1000msになるようにするには、サーバーへのリクエストが多すぎてクラッシュすることがありました。代わりにjavascriptを利用するためにスクリプトをすべて再構築しましたが、私はまだDBにアクセスする必要がありますので、ここに問題があります。 – Dustin

答えて

0

正しく、これはyaのために働くべきではないという理由はありませんあなたの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にタイマーがフリーズして何も起こらず、DBをチェックしてUPDATEが起動しません。 – Dustin

+0

これはうまくいくでしょう。何か別のものがあるはずです..「alert( 'test');を「finish.coundown」関数に追加して、それが発生したかどうかを確認してください。 ajaxコールもコンソールエラーが表示されますか?timerdone.phpへのパスは正しいですか? – Rick

+0

アラートは機能しますが、コンソールエラーはありません。 > timerdone.phpには何も表示されませんが、 – Dustin

関連する問題