Nun tritt das Problem auf, dass ich auf Seite zwei einen Versuch habe bei dem ich folgenden PHP Code verwende
if (!isset($time0)) {
$time0 = time();
registerVariable('time0'); // Die Variable $time0 auch nach Ende des PHP-Codes aufbewahren
}
// Prüfung, ob die Zeit schon abgelaufen ist
// (z.B. weil der Teilnehmer die Seite neu geladen hat)
$timer = 90; // Der Teilnehmer hat 1 Minute (60 Sekunden) Zeit zur Bearbeitung
if (time() >= $time0 + $timer) {
goToPage('next');
}
// Die verbleibende Zeit muss auch dem JavaScript-Code bekannt gemacht werden
$remain = $time0 + $timer - time();
replace('%remain%', $remain);
mein dazugehöriger HTML Code ist folgender:
<p>Verbleibende Zeit: <span id="remain"></span></p>
und für den Timer habe ich einen Textbaustein mit folgendem Inhalt angelegt:
<script type="text/javascript">
<!--
// Funktion zur Weiterleitung
function weiter() {
// Eine Meldung anzeigen (optional)
alert("Die Zeit ist vorbei.");
// Den Teilnehmer zur nächsten Seite weiterleiten
SoSciTools.submitPage();
}
// Countdown anzeigen
var date0 = new Date();
var timeout = date0.getTime() + %remain% * 1000;
function updateCountdown() {
// Zeit berechnen
var date = new Date();
var time = Math.ceil((timeout - date.getTime() - 50) / 1000); // Verbleibende Zeit in Sekunden
// Zeit anzeigen
var out = document.getElementById("remain");
if (!out) {
return;
}
while (out.lastChild) {
out.removeChild(out.lastChild);
}
var minutes = Math.floor(time / 60);
var seconds = String(time - 60 * minutes);
if (seconds.length < 2) seconds = "0" + seconds;
var display = String(minutes) + ":" + seconds;
var displayNode = document.createTextNode(display);
out.appendChild(displayNode);
}
// Initialisierung der Weiterleitung
SoSciTools.attachEvent(window, "load", function(evt) {
// Weiter-Knopf ausblenden (optional)
SoSciTools.submitButtonsHide();
// Zusätzlicher Timer für die Aktualisierung des Countdowns
window.setInterval(updateCountdown, 1000);
updateCountdown();
// Timer für automatische Weiterleitung starten
window.setTimeout(weiter, %remain% * 1000);
});
// -->
</script>
Auf Seite 4 des GLEICHEN Fragebogens, würde ich gerne einen ähnlichen Versuch durchführen, für welchen die Teilnehmer ebenfalls 90 Sekunden Zeit haben. Bisher habe ich denselben PHP Code, HTML Code und denselben Textbaustein verwendet. Wenn ich nun aber den Fragebogen durchgehe, wird nur auf der zweiten Seite der Timer und die Zeit angezeigt, und dann springt Socsci Survey auf die letze Seite (nach Ablauf der 90 Sekunden). Meine Vermutung: Da ich denselben Code verwende, wird gleichzeitig auf Seite 2 und 4 die Zeit zum gleichen Zeitpunkt begonnen und somit läuft die Zeit auf Seite 4 gleichzeitig ab, weshalb das Programm zum Ende springt.
Haben Sie hierfür eine Lösung?
Für Ihre Hilfe wäre ich sehr dankbar.
Mit freundlichen Grüßen.