Ich habe in meinem Fragebogen 4 Blöcke, deren Abfolge ich mischen will. Dh. nach der Einleitung sollen Blöcke (1-4) in unterschiedlicher Reihenfolge vorkommen, dann soll es auf Seite FQ0 weitergehen. Die jeweilige Reihenfolge, in der ein Teilnehmer die Blöcke sieht, soll bei der Datenerhebung auch abgespeichert werden. Dafür habe ich folgenden Code erstellt:
// Erst einmal die Seitenkennungen als Array speichern
$blocks = array(
'Cond1' => array('C1in','C1p','C1ready','C1e1','C1d1','C1aem','C1d2','C1lcm','C1aed','C1d3','C1d4','C1e2','C1d5','C1aempd','C1lcd','C1d6','C1aemps','C1d7', 'C1done'),
'Cond2' => array('C2in','C2p','C2ready','C2e1','C2d1','C2aem','C2d2','C2lcm','C2aed','C2d3','C2d4','C2e2','C2d5','C2aempd','C2lcd','C2d6','C2aemps','C2d7', 'C2done'),
'Cond3' => array('C3in','C3p','C3ready','C3e1','C3d1','C3aem','C3d2','C3lcm','C3aed','C3d3','C3d4','C3e2','C3d5','C3aempd','C3lcd','C3d6','C3aemps','C3d7', 'C3done'),
'Cond4' => array('C4in','C4p','C4ready','C4e1','C4d1','C4aem','C4d2','C4lcm','C4aed','C4d3','C4d4','C4e2','C4d5','C4aempd','C4lcd','C4d6','C4aemps','C4d7', 'C4done'));
// Jetzt noch die Reihenfolge der Blöcke zufällig mischen
shuffle($blocks);
for ($i=0; $i<count($blocks); $i++) {
// Kennung der internen Variable aus Frage-Kennung plus Index erstellen
$id = id('ZF05', $i + 1);
// Hier den Wert aus dem Array speichern
put($id, $blocks[$i][0]);
}
// Jetzt das Ergebnis noch als Seitenabfolge festlegen
// Weiter soll es anschließend mit Seite 'FQ0' gehen
setPageOrder($blocks, 'FQ0');
Ich habe mich mehrmals durch den Fragebogen geklickt um zu sehen ob das klappt. Allerdings wird mir manchmal nur ein Block angezeigt, manchmal nur 3, manchmal dann doch alle 4..., obwohl ich von ganz von Anfang mit dem Durchklicken beginne. Die Variable ZF05 zeigt mir bei 'Daten ansehen' immer eine (gemischte) Abfolge von 4 Blöcken an, auch wenn ganz offensichtlich 1 Block gefehlt hat. Wo kann der Fehler liegen?