2017-12-14 7 views
-1

"時間"をデータベースに保存するのに問題があります。私が保存したい "時間"は、ユーザが質問に答えるのに費やした時間で、送信ボタンを押すと、費やした時間がデータベースに保存されます。ここユーザーが自分のフォームの質問にデータベースに回答した時間を節約する方法

は私のjavascriptです:

var minutesLabel = document.getElementById("minutes"); 
    var secondsLabel = document.getElementById("seconds"); 
    var totalSeconds = 0; 
    var secondLabel = document.getElementById("second"); 
    setInterval(setTime, 1000); 

    function setTime() 
    { 
     ++totalSeconds; 
     secondsLabel.innerHTML = pad(totalSeconds%60); 
     secondLabel.innerHTML = pad(totalSeconds); 
     minutesLabel.innerHTML = pad(parseInt(totalSeconds/60)); 
    } 

    function pad(val) 
    { 
     var valString = val + ""; 
     if(valString.length < 2) 
     { 
      return "0" + valString; 
     } 
     else 
     { 
      return valString; 
     } 
    } 

これは私がそれらを呼び出す方法です:

<label id="minutes">00</label>:<label id="seconds">00</label> 

私が達成しようとしている何minuteslabelを保存することです。提案がある場合は、躊躇しないでください。ありがとう

+0

秒をどのように保存していますか?これはこのコードではありません。 – Jerodev

+0

フォームの最初の入力にフォーカスハンドラを追加し、カウントを開始します(setIntervalを使用して1秒ごとに値を増やすことができます)。そしてサンドハンドラが最初の間隔をクリアし、カウントされた合計値を取得します。その後、他のすべてのデータと一緒に送信することができます –

+0

@Jerodevこれは、時間が0からex:00:00(ページが開いているときに自動起動)になるようにする部分です。あなたの答えは5秒後に – Dan

答えて

0

私はあなたがすでに画面に時間を印刷しているからです。フォーム提出を使用していて、ajaxではなく、次のようにしてください:

<!-- In your view/html --> 
<form ........ > 
<input type="hidden" id="timeSpent" name="timeSpent"> 
. 
. 
. 

// In your Javascript 
<script> 
function setTime() 
{ 
    ++totalSeconds; 
    secondsLabel.innerHTML = pad(totalSeconds%60); 
    secondLabel.innerHTML = pad(totalSeconds); 
    minutesLabel.innerHTML = pad(parseInt(totalSeconds/60)); 
    document.getElementById("timeSpent").value = pad(parseInt(totalSeconds/60)) + pad(totalSeconds%60); 
} 
</script> 
+0

thxの答えと一緒に私のデータベースに値(8分)を送ることができますが、私はそれをPHPに渡さないとデータベースに保存できます最初? – Dan

関連する問題