Hallo liebes Sosci-Team,
ich möchte einen Fragebogen mit mehreren Blöcken (A-E) erstellen. Nach den Blöcken geht es auf Seite 'WIE' weiter. Manche der Blöcke (A, C und E) sollen in sich rotieren und dabei jeweils die Position der einzelnen Seiten gespeichert werden. Außerdem soll es 2 Gruppen geben, wobei in einer Gruppe die Reihenfolge „Block A-E“ sein soll und bei der anderen „Block B-E, A“, was ich mittels eines Zufallsgenerators realisiert habe.
Ich habe folgenden PHP-Code erstellt:
if (!isset($abfolge)) {
$blockA = ['ASW1A', 'ASW1B', 'ASW1C1', 'ASW1C2', 'ASW1D', 'ASW1E', 'ASW1F', 'ASW2A', 'ASW2B', 'ASW2C1', 'ASW2C2', 'ASW2D', 'ASW2E', 'ASW2F', 'ASM1A', 'ASM1B', 'ASM1C1', 'ASM1C2', 'ASM1D', 'ASM1E', 'ASM1F', 'ASM2A', 'ASM2B', 'ASM2C1', 'ASM2C2', 'ASM2D', 'ASM2E', 'ASM2F'];
$blockB = 'EI';
$blockC = ['EZW1A','EZW1B', 'EZW1C1', 'EZW1C2', 'EZW1D', 'EZW1E', 'EZW1F', 'EZW2A', 'EZW2B', 'EZW2C1', 'EZW2C2', 'EZW2D', 'EZW2E', 'EZW2F', 'EZM1A', 'EZM1B', 'EZM1C1', 'EZM1C2', 'EZM1D', 'EZM1E', 'EZM1F', 'EZM2A', 'EZM2B', 'EZM2C1', 'EZM2C2', 'EZM2D', 'EZM2E', 'EZM2F'];
$blockD = 'FI';
$blockE = ['FZW1A','FZW1B', 'FZW1C1', 'FZW1C2', 'FZW1D', 'FZW1E', 'FZW1F', 'FZW2A', 'FZW2B', 'FZW2C1', 'FZW2C2', 'FZW2D', 'FZW2E', 'FZW2F', 'FZM1A', 'FZM1B', 'FZM1C1', 'FZM1C2', 'FZM1D', 'FZM1E', 'FZM1F', 'FZM2A', 'FZM2B', 'FZM2C1', 'FZM2C2', 'FZM2D', 'FZM2E', 'FZM2F'];
if (!isset($random3)) {
$indices3 = array_keys($blockA);
shuffle($indices3);
// Nun die Ränge speichern - und die neue Abfolge der Seiten in $random3 speichern
$random3 = array();
for ($i3=0; $i3<count($indices3); $i3++) {
// Rang speichern wie oben
$id = id('IV03', $indices3[$i3] + 1);
put($id, $i3 + 1);
// Seite in der Abfolge speichern
$random3[$i3] = $blockA[$indices3[$i3]];
}
registerVariable($random3);
}
if (!isset($random4)) {
$indices4 = array_keys($blockC);
shuffle($indices4);
// Nun die Ränge speichern - und die neue Abfolge der Seiten in $random4 speichern
$random4 = array();
for ($i4=0; $i4<count($indices4); $i4++) {
// Rang speichern wie oben
$id = id('IV04', $indices4[$i4] + 1);
put($id, $i4 + 1);
// Seite in der Abfolge speichern
$random4[$i4] = $blockC[$indices4[$i4]];
}
registerVariable($random4);
}
if (!isset($random5)) {
$indices5 = array_keys($blockE);
shuffle($indices5);
// Nun die Ränge speichern - und die neue Abfolge der Seiten in $random5 speichern
$random5 = array();
for ($i5=0; $i5<count($indices5); $i5++) {
// Rang speichern wie oben
$id = id('IV05', $indices5[$i5] + 1);
put($id, $i5 + 1);
// Seite in der Abfolge speichern
$random5[$i5] = $blockC[$indices5[$i5]];
}
registerVariable($random5);
}
if (value('RG01') == 1) {
$abfolge = [$blockA, $random3, $blockB, $blockC, $random4, $blockD, $blockE, $random5];
} else {
$abfolge = [$blockB, $blockC, $random4, $blockD, $blockE, $random5, $blockA, $random3];
}
registerVariable($abfolge);
}
setPageOrder($abfolge, 'WIE');
Mein Problem ist es, dass zwar eine Rotation erstellt und auch in den internen Variablen gespeichert wird, diese aber nicht in die Abfolge übernommen wird bzw. laut Debug-Informationen nicht in setPageOrder übertragen wird. Wie lässt sich das Problem lösen?
Vielen Dank schon mal für Ihre Unterstützung!