2016-05-19 1 views
0

J'ai un projet de test d'examen en ligne avec compte à rebours. J'ai l'heure de début (quand le formulaire est ouvert) et l'heure de fin (quand nous cliquons sur le bouton soumettre). Mon problème est, je ne peux pas enregistrer l'heure de début à la base de données. Comment le résoudre?comment gagner du temps à partir de la valeur du compte à rebours javascript lorsque le formulaire est ouvert?

<script type="text/javascript"> 
 
\t var hoursleft = 0; 
 
\t /*get value from database*/ 
 
\t var minutesleft = <?php echo $menit->alat_waktu ?>; 
 
\t var secondsleft = 0; 
 
\t var finishedtext = "SELESAI"; 
 
\t var end1; 
 
\t if(localStorage.getItem("end1")) 
 
\t { 
 
\t \t end1 = new Date(localStorage.getItem("end1")); 
 
\t } 
 
\t else 
 
\t { 
 
\t \t end1 = new Date(); 
 
\t \t end1.setHours(end1.getHours()+hoursleft); 
 
\t \t end1.setMinutes(end1.getMinutes()+minutesleft); 
 
\t \t end1.setSeconds(end1.getSeconds()+secondsleft); 
 
\t } 
 

 
var counter = function() { 
 
\t var now = new Date(); 
 
\t var datediff = end1 - now; 
 

 
\t diff = new Date(datediff); 
 

 
\t var milliseconds = parseInt((diff%1000)/100) 
 
    var sec = parseInt((diff/1000)%60) 
 
    var mins = parseInt((diff/(1000*60))%60) 
 
    var hours = parseInt((diff/(1000*60*60))%24); 
 
\t if(hours < 10) { 
 
\t \t hours = "0" + hours; 
 
\t } 
 
\t if (mins < 10) { 
 
\t \t mins = "0" + mins; 
 
\t } 
 
\t if (sec < 10) { 
 
\t \t sec = "0" + sec; 
 
\t }  
 
\t if(now >= end1) {  
 
\t \t clearTimeout(interval); 
 
\t \t localStorage.setItem("end1", null); 
 
\t \t localStorage.removeItem("end1"); 
 
\t \t document.getElementById('divCounter').innerHTML = finishedtext; 
 
\t \t 
 
\t \t if(confirm("TIME OUT !!!")) 
 
\t \t clearInterval(counter); 
 
\t \t window.location.href= "http://localhost/psiko"; 
 
\t \t document.getElementById('myform').submit(); 
 
\t } else { 
 
\t \t var value = hours + ":" + mins + ":" + sec; 
 
/*--------save variable value to db----------*/ 
 
/*save countdown timer when form is opened*/ 
 
// document.myform.waktu_awal.value = end1; 
 
/*save countdown timer when submit button is clicked*/ 
 
\t \t document.myform.waktu_akhir.value = value; 
 
/*------------------------------------------------*/ 
 
\t \t localStorage.setItem("end1", end1); 
 
\t \t document.getElementById('divCounter').innerHTML = value; 
 
\t } 
 
} 
 

 
var interval = setInterval(counter, 1000); 
 
</script>

waktu_awal est start_time et waktu_akhir est end_time

+0

Lorsque vous voulez gagner du temps dans la base de données ... lorsque vous soumettez le formulaire? –

+0

je veux gagner du temps lorsque le formulaire est ouvert comme heure de début et quand je soumets le formulaire comme heure de fin –

+0

J'ai été en mesure d'enregistrer l'heure de fin avec "document.myform.waktu_akhir.value = value;" mais je confondais encore quelle valeur de la variable comme heure de début pour enregistrer –

Répondre

-2

Vous pouvez créer une entrée cachée et que la minuterie commencera vous pouvez régler l'heure de début dans cette entrée cachée à l'aide javascript/jquery et lorsque vous soumettez le formulaire que vous pouvez obtenir ce temps et peut enregistrer dans la base de données.

0

Je le fais déjà dans mon script

$waktu_awal = $_POST; 
    $waktu_akhir = $_POST; 
    echo "<td> <input type=\"hidden\" name=\"waktu_awal\" value=\"".$waktu_awal."\"></td>"; 
    echo "<td> <input type=\"hidden\" name=\"waktu_akhir\" value=\"".$waktu_akhir."\"></td>"; 
0

var value = hours + ":" + mins + ":" + sec; 
 
/*--------menyimpan nilai variabel ke db----------*/ 
 
/*save countdown timer when form is open*/ 
 
\t \t document.myform.waktu_awal.value = <--- which variable value should I write in here as my start time? 
 
/*save countdown timer when submit*/ 
 
\t \t document.myform.waktu_akhir.value = value; 
 
/*------------------------------------------------*/