Hallo zusammen. Ich (JavaScript-Anfänger) sitze hier vor einem ungelösten Problem und hoffe, ihr könnt mir helfen.
Mein Vorhaben:
Ich habe eine Seite, auf der sich ein Benutzer anmeldet und Fragen beantworten muss. Nach jeder beantworteten Frage geht es weiter zur nächsten Seite. Frage1.php -> Frage2.php usw.
Am Ende möchte ich dann alle Fragen auswerten. Das Ganze habe ich bisher mit HTML, PHP und SQL realisiert.
Jetzt möchte ich aber, dass ein Benutzer für eine bestimmte Frage nur eine begrenzte Zeit zur Verfügung hat.
Ich habe also versucht, einen Timer in Javascript zu schreiben.
Den Countdown habe ich mir jetzt zusammengebastelt - nicht ganz alleine muss ich wohl gestehen.
Mein Problem:
Der Countdown soll nicht neu starten, wenn die Seite aktualisiert oder die Frage erneut aufgerufen wird.
Und nach Ablauf möchte ich die Seite und somit ein Beantworten der Frage gerne sperren.
Mein Ansatz war, es mit Cookies zu versuchen, scheiterte aber bei dem Versuch.
Vielleicht gibt es bessere Möglichkeiten, dir mir noch nicht in den Sinn kamen?
Danke im Voraus.
Und hier der Code zum Countdown
Die Seite wird nur im lokalen Netzwerk ausgeführt.
Mein Vorhaben:
Ich habe eine Seite, auf der sich ein Benutzer anmeldet und Fragen beantworten muss. Nach jeder beantworteten Frage geht es weiter zur nächsten Seite. Frage1.php -> Frage2.php usw.
Am Ende möchte ich dann alle Fragen auswerten. Das Ganze habe ich bisher mit HTML, PHP und SQL realisiert.
Jetzt möchte ich aber, dass ein Benutzer für eine bestimmte Frage nur eine begrenzte Zeit zur Verfügung hat.
Ich habe also versucht, einen Timer in Javascript zu schreiben.
Den Countdown habe ich mir jetzt zusammengebastelt - nicht ganz alleine muss ich wohl gestehen.
Mein Problem:
Der Countdown soll nicht neu starten, wenn die Seite aktualisiert oder die Frage erneut aufgerufen wird.
Und nach Ablauf möchte ich die Seite und somit ein Beantworten der Frage gerne sperren.
Mein Ansatz war, es mit Cookies zu versuchen, scheiterte aber bei dem Versuch.
Vielleicht gibt es bessere Möglichkeiten, dir mir noch nicht in den Sinn kamen?
Danke im Voraus.
Und hier der Code zum Countdown
Code:
function getTimeRemaining(endtime) {
var t = Date.parse(endtime) - Date.parse(new Date());
var sekunden = Math.floor((t / 1000) % 60);
var minuten = Math.floor((t / 1000 / 60) % 60);
var stunden = Math.floor((t / (1000 * 60 * 60)) % 24);
var tage = Math.floor(t / (1000 * 60 * 60 * 24));
return {
'total': t,
'tage': tage,
'stunden': stunden,
'minuten': minuten,
'sekunden': sekunden
};
}
function initializeClock(id, endtime) {
var clock = document.getElementById(id);
var tageSpan = clock.querySelector('.tage');
var stundenSpan = clock.querySelector('.stunden');
var minutenSpan = clock.querySelector('.minuten');
var sekundenSpan = clock.querySelector('.sekunden');
function updateClock() {
var t = getTimeRemaining(endtime);
tageSpan.innerHTML = t.tage;
stundenSpan.innerHTML = ('0' + t.stunden).slice(-2);
minutenSpan.innerHTML = ('0' + t.minuten).slice(-2);
sekundenSpan.innerHTML = ('0' + t.sekunden).slice(-2);
if (t.total <= 0) {
clearInterval(timeinterval);
}
}
updateClock();
var timeinterval = setInterval(updateClock, 1000);
}
var deadline = new Date(Date.parse(new Date()) + 24 * 60 * 60 * 1000);
initializeClock('clockdiv', deadline);
Die Seite wird nur im lokalen Netzwerk ausgeführt.
Zuletzt bearbeitet: