Hier nochmal im Detail:
Ich habe einen Fragebogen mit insgesamt 49 Seiten.
Seite 1-7: Einleitung/Instruktionen
Seite 8: php code für die 4 Listen:
question('ZG01');
$code = value('ZG01');
if ($code == 1) {
$rubrik = 'L1';
} elseif ($code == 2) {
$rubrik = 'L2';
} elseif ($code == 3) {
$rubrik = 'L3';
} else {
$rubrik = 'L4';
}
registerVariable($rubrik);
(das funktioniert gut)
Seite 9: Code für die Randomisierung und Speicherung für der Randomisierung. Hier sind die Schwierigkeiten. Die Randomisierung an sich funktioniert gut mit diesem Code:
$pages = array('S01', 'S02', ..., 'S48');
shuffle($pages);
$pages[] = 'FIN';
setPageOrder($pages);
Es folgen also 48 Seiten auf denen je eine Frage angezeigt wird (question($rubrik.'02');), und denen ich die Kennungen S01-S48 gegeben habe.
Danach kommt noch eine leere Seite, die sich FIN nennt.
Wichtig für die Speicherung: Ich möchte die Rangfolge speichern, also S01=rangX, S02=rangX, etc..
Ich habe eine interne Variable angelegt, die sich TR01 nennt. Innerhalb dieser gibt es 49 Variablen (trial01-trial49).
Auf der SoSci Seite zu put() ist der Code zu finden, den ich für mich anpassen müsste:
$pages = array('A1','A2','A3','A4','A5','B1','B2-B4','B5');
// Die Seiten nicht direkt mischen, sondern deren Positionen
$indices = array_keys($pages);
shuffle($indices);
// Nun die Ränge speichern - und die neue Abfolge der Seiten in $random speichern
$random = array();
for ($i=0; $i<count($indices); $i++) {
// Rang speichern wie oben
$id = id('IV01', $indices[$i] + 1);
put($id, $i + 1);
// Seite in der Abfolge speichern
$random[$i] = $pages[$indices[$i]];
}
// Neue Seitenabfolge setzen
setPageOrder($random);
Dies habe ich getan, aber 1:1 kann ich ihn nicht übernehmen, auch wenn ich ihn entsprechend der Namen meiner Seiten/Variablen anpasse. Z.B. scheint hier der Befehl
$pages[] = 'FIN';
zu fehlen, und mir werden auf einmal alle Fragen 2x angezeigt.
Um meine Frage nochmal konkret zu stellen: Wie muss ich den Code der put() Seite für mich anpassen?
Viele Dank für Ihre Zeit und Mühe!