Wir möchten in unserem Fragebogen 36 Blöcke rotieren. Die Blöcke bestehen aus jeweils drei Seiten. Für jede Seite der rotierten Blöcke brauchen wir einen Timer. Die Rotation soll nach dem Prinzip "ohne zurücklegen" funktionieren. Sobald alle Blöcke abgespielt wurden soll eine Abschlussseite gezeigt werden. Die Rotation der Blöcke funktioniert an sich. Auch die Timer funktionieren ohne Rotation. Allerdings funktionieren die Codes gemeinsam nicht. Wir vermuten, dass der Code gotopage('next') nicht stimmt. Wir verwenden folgende Codes:
$rotation = array(
'A' => array('A1','A2', 'A3'),
'B' => array('B1', 'B2', 'B3'),
'C' => array('C1', 'C2', 'C3'),
);
shuffle($rotation);
setPageOrder($rotation,'D1');
--> für die Rotation
UND
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 = 2; // Der Teilnehmer hat 2 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);
--> um den Timer auszulösen
//Prüfung, ob die Zeit schon abgelaufen ist
$timer = 5; //Der Teilnehmer hat 1 Minute (60 Sekunden)
if(time() >= $time0 + §timer) {
goToPage('next');
}
//De verrbleibende Zeit muss auch dem JavaScript-Code bekannt gemacht werden
$remain = §time0 + §timer + time();
replace('%remain%', §remain);
--> für die darauf aufbauenden folgenden Seiten
Hat jemand eine Idee wie wir sie koordinieren könnten?