Mein Fragebogen enthält 32 Mehrfachauswahlfragen, bestehend aus jeweils drei Items. Aufgabe der Versuchspersonen ist es aus den Sets von drei Wörtern jeweils zwei Wörter auszuwählen, z.B. "Hund-Kaninchen-Möhre". Bei jeder dieser Kategorisierungsaufgaben sind jeweils drei verschiedene Kombinationen möglich. Um was für eine Art von Kategorisierung es sich handelt lasse ich mir mit Hilfe von folgendem PHP-Code, den ich hinter der letzten Kategorisierungsaufgabe eingefügt habe, in einer internen Variable ausgeben.
$punkte = array(
'KA01' => array('12' => 0, '13' => 1, '23' => 2),
'KA02' => array('12' => -1, '13' => -1, '23' => -1),
'KA03' => array('12' => 2, '13' => 1, '23' => 0),
'KA04' => array('12' => -1, '13' => -1, '23' => -1),
'KA05' => array('12' => -1, '13' => -1, '23' => -1),
'KA06' => array('12' => 0, '13' => 2, '23' => 1),
'KA07' => array('12' => 2, '13' => 1, '23' => 0),
'KA08' => array('12' => -1, '13' => -1, '23' => -1),
'KA09' => array('12' => 1, '13' => 0, '23' => 2),
'KA10' => array('12' => -1, '13' => -1, '23' => -1),
'KA11' => array('12' => 1, '13' => 2, '23' => 0),
'KA12' => array('12' => -1, '13' => -1, '23' => -1),
'KA13' => array('12' => -1, '13' => -1, '23' => -1),
'KA14' => array('12' => 1, '13' => 0, '23' => 2),
'KA15' => array('12' => 2, '13' => 0, '23' => 1),
'KA16' => array('12' => -1, '13' => -1, '23' => -1),
'KA17' => array('12' => 2, '13' => 1, '23' => 0),
'KA18' => array('12' => -1, '13' => -1, '23' => -1),
'KA19' => array('12' => 1, '13' => 0, '23' => 2),
'KA20' => array('12' => -1, '13' => -1, '23' => -1),
'KA21' => array('12' => -1, '13' => -1, '23' => -1),
'KA22' => array('12' => 1, '13' => 2, '23' => 0),
'KA23' => array('12' => 0, '13' => 1, '23' => 2),
'KA24' => array('12' => -1, '13' => -1, '23' => -1),
'KA25' => array('12' => 1, '13' => 2, '23' => 0),
'KA26' => array('12' => -1, '13' => -1, '23' => -1),
'KA27' => array('12' => 0, '13' => 1, '23' => 2),
'KA28' => array('12' => -1, '13' => -1, '23' => -1),
'KA29' => array('12' => -1, '13' => -1, '23' => -1),
'KA30' => array('12' => 2, '13' => 0, '23' => 1),
'KA31' => array('12' => 2, '13' => 0, '23' => 1),
'KA32' => array('12' => -1, '13' => -1, '23' => -1),
);
foreach (array_keys($punkte) as $i => $qst) {
$num = $i + 1;
$items = $punkte[$qst];
// Welche Optionen wurden ausgewählt?
$items = getItems($qst, '==', 2);
// Zur Sicherheit nochmal sortieren
sort($items);
// Den "Code" erzeugen, also 1+3 => '13'
$code = implode($items);
// Den Punktwert auslesen und in der internen Variable speichern
if (isset($punkte[$qst][$code])) {
put(id('KA33', $num), $punkte[$qst][$code]);
} else {
// Falls mal eine Kombination in der Liste fehlt...
put(id('KA33', $num), 'Y'.$code);
}
}
Der Code funktioniert. Nun wollte ich jedoch Fragen UND Items auch noch rotieren. Jeder Proband soll die Fragen als auch die Items in unterschiedlichen Reihenfolgen bekommen. Jede Kategorisierungsaufgabe befindet sich auf einer eigenen Seite, deshalb habe ich zur Rotation der Aufgaben folgenden Code verwendet, den ich auf der Seite vor der Seit, wo die Rotation beginnen soll, eingefügt habe:
if (!isset($seiten)) {
// Liste der Seiten definieren
$seiten = array('S10','S11','S12','S13','S14','S15','S16','S17','S18','S19','S20','S21','S22','S23','S24','S25','S26','S27','S28','S29','S30','S31','S32','S33','S34','S35','S36','S37','S38','S39','S40');
// Liste mischen
shuffle($seiten);
// Die Seite ergänzen, wo es nachher weiter geht
$seiten[] = 'S41';
// Reihenfolge zwischenspeichern, um spätere Änderung zu vermeiden
registerVariable($seiten);
}
setPageOrder($seiten);
Die Rotation der Items habe ich bei jedem Item manuell eingestellt über "Auswahloptionen" und dann "Zufällig rotieren/mischen" unter "Reihenfolge Auswahloptionen".
Die Rotation von Fragen sowie Items funktioniert, allerdings werden mir in meiner internen Variablen "K33", die mir die Punktwerte 0,1,2, und -1 ausgeben soll (je nachdem was für eine Art Kategorisierung vorgenommen wurde), fast ausschließlich "Y"s angezeigt. Woran liegt das und wie kann ich das ändern ohne auf die Rotationen verzichten zu müssen?