2017-03-11 8 views
1

私は、テストの特定のセクションに対して15分のタイマーを設定するPHPアプリケーションを作成しています。 15分以内にセクションを修了しなかった場合は、スコアが保存され、次のセクションに移動します。PHPとスリープ関数でタイマーを実装する

私はタイマーを作成し、現在の時間を表示したいと思っています。しかし、私はそれを実装する方法を知らないし、sleep()関数を使用すると他の関数の処理も中断します。

+1

これはJS – C2486

+0

を介して行うことができますしかし、私は、データベース内の学生のスコアを保存することができますAJAXを使用してJS –

+0

を経由してDBに学生のスコアを保存傾けます。 – C2486

答えて

2

このためにPHPを使用することはできません。そうした場合、ページロード時にページが15秒間フリーズし、学生の時間が切れたことが伝えられます。

だから、あなたはこのようJavaSciptでそれを書く必要があります。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
<script> 
currentMinute = 0; 
myTimer = setInterval(function() { 
    if (currentMinute > 15) { 
     clearInterval(myTimer); 
     //send post data that the user's time is up 
     return; 
    } 
    $.post("sendData.php", { 
     "timeIsUp" : true 
    }, function (data) { 
     console.log("done sending time has expired to server"); 
    }); 
    currentMinute++; 
}, 60 * 1000); 
</script> 
+0

しかし、私は学年の学生のスコアを保存することはできませんJS –

+0

私は時間が切れたときにフォームのように、sendData.phpと呼ばれるファイルにデータを送信するいくつかのコードを追加しました。 – Neil

+0

sendData.php内のデータベースにコードを追加するコードを挿入します – Neil

0

jQueryのは...この上のタイマー

するvar hours1 = 0、minutes1する機能以下

利用をお手伝いします= 0、秒1 = 0;

関数を計算(){

setTimeout(calculate, 1000); 
if((hours==0)&&(minutes==0)&&(seconds==0)){$('#submit-btn').trigger('click');} // HERE YOU CAN SWITCH TO NEXT QUESTION 
h1 = makeTwoDigit(hours); m1 = makeTwoDigit(minutes); s1 = makeTwoDigit(seconds); 
h2 = makeTwoDigit(hours1); m2 = makeTwoDigit(minutes1); s2 = makeTwoDigit(seconds1); 
$('title').html(h1+':'+m1+':'+s1); 
$('#time-taken').val(h2+':'+m2+':'+s2); 
$('#minutes').html(m1); 
$('#seconds').html(s1); 

seconds--; 
if (seconds < 0) { 
    seconds = 59; minutes--; 

    if (minutes < 0) { 
     hours--; 
     minutes = 59;       
    } 
} 
seconds1++; 
if (seconds1 > 59) { 
    seconds1 = 00; minutes1++;  
    if (minutes1 >59) { 
     hours1++; 
     minutes1 = 00;       
    } 
} 

}

関数makeTwoDigit(NUM){

IF(NUM < 10){リターン "0" + NUM;}戻りNUM。

}

おかげ

関連する問題