Countdown time probleem
Alleen ik loop er op vast.
Dit is wat ik heb
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<script type="text/javascript">
var sc = 120;
var dt = new Date();
var ts = dt.getTime()/1000;
function cdtimer() {
var dt = new Date();
var ts2 = dt.getTime()/1000;
var sp = ts2-ts;
var nbr = sc - sp;
if (nbr < 0) { document.location.href = document.location.href; }
var min = Math.floor(nbr / 60); if (min < 0) { min = 0; }
var sec = Math.floor(nbr - (min*60)); if (sec < 0) { sec = 0; }
if (min < 10) min = "0"+min;
if (sec < 10) sec = "0"+sec;
if (min > 60) {
var hrs = Math.floor(min / 60); if (hrs < 0) { hrs = 0; }
if (hrs < 10) hrs = "0"+hrs;
min = min - hrs*60;
if (min < 10) min = "0"+min;
if (document.getElementById('cdtimer_1')) document.getElementById('cdtimer_1').innerHTML = hrs+':'+min+':'+sec;
} else {
if (document.getElementById('cdtimer_1')) document.getElementById('cdtimer_1').innerHTML = min+':'+sec;
}
}
window.setInterval('cdtimer();', 1000);
window.setTimeout('cdtimer();', 100);
</script>
var sc = 120;
var dt = new Date();
var ts = dt.getTime()/1000;
function cdtimer() {
var dt = new Date();
var ts2 = dt.getTime()/1000;
var sp = ts2-ts;
var nbr = sc - sp;
if (nbr < 0) { document.location.href = document.location.href; }
var min = Math.floor(nbr / 60); if (min < 0) { min = 0; }
var sec = Math.floor(nbr - (min*60)); if (sec < 0) { sec = 0; }
if (min < 10) min = "0"+min;
if (sec < 10) sec = "0"+sec;
if (min > 60) {
var hrs = Math.floor(min / 60); if (hrs < 0) { hrs = 0; }
if (hrs < 10) hrs = "0"+hrs;
min = min - hrs*60;
if (min < 10) min = "0"+min;
if (document.getElementById('cdtimer_1')) document.getElementById('cdtimer_1').innerHTML = hrs+':'+min+':'+sec;
} else {
if (document.getElementById('cdtimer_1')) document.getElementById('cdtimer_1').innerHTML = min+':'+sec;
}
}
window.setInterval('cdtimer();', 1000);
window.setTimeout('cdtimer();', 100);
</script>
Het probleem wat zich voor doet is als volgt.
De code telt netjes af maar zodra ik de pagina refresh dan begint de teller weer vanaf 2 minuten.
De bedoeling is als volgt
Jaap die doet een test als die test is gedaan dan komt in de database
de datum en tijd van nu met de NOW() insert.
Nu is het zo dat Jaap pas over 2 minuten een andere test mag doen.
Dus ik controleer het zo
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
$sql = "SELECT UNIX_TIMESTAMP(tijdtest) AS tijdtest FROM users";
///Hier de foutafhandeling van de sql//
//dan komt hier een vergelijking
$tijd_nu = time();
if($tijd_nu - $row['tijdtest'] < 120){
echo "Je dient nog <span id="cdtimer_1"></span> te wachten";
}else{
//De rest van de code
}
///Hier de foutafhandeling van de sql//
//dan komt hier een vergelijking
$tijd_nu = time();
if($tijd_nu - $row['tijdtest'] < 120){
echo "Je dient nog <span id="cdtimer_1"></span> te wachten";
}else{
//De rest van de code
}
Hoe kan ik dit het beste aanpakken.
Met vriendelijke groet,
Thomas de Vries
Gewijzigd op 11/02/2012 21:25:29 door Thomas de vries
Kijk eens naar INTERVAL, kun je gebruiken in je select query.
Het gaat ook om het bovenste stuk niet de code die eronder staat.
Thomas de vries op 11/02/2012 21:24:56:
De code telt netjes af maar zodra ik de pagina refresh dan begint de teller weer vanaf 2 minuten.
Volgens mij ontkom je daar niet aan bij javascript.
Begrijp de moeilijkheid ook niet. Je wilt niet dat Jaap binnen 2 minuten een (andere) test gaat doen.
Controleer of Jaap de afgelopen twee minuten een test heeft gedaan. Dit kun je doen door te kijken in de database wanneer de laatste keer was. Indien meer dan twee minuten geleden, ga verder, zo niet toon melding. Kun je prima oplossen via php.
Maar bij deze is het opgelost.
Heb er een andere code voor.
bedankt voor je uitleg