0 votes
in SoSci Survey (dt.) by s111972 (150 points)
closed by SoSci Survey

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?

closed with the note: Problem gelöst
by SoSci Survey (303k points)
Lassen Sie den Code zur Auswertung einmal am Ende laufen, nachdem der Teilnehmer alle Fragen beantwortet hat (S41)? Oder steht er zusammen mit einer Frage auf einer der rotierten Seiten?

Wenn der Code auf S41 steht, sollte alles funktionieren. Wenn es das nicht tut, brauchen wir zur Fehlersuche ein paar Debug-Infos. Bitte fügen Sie dafür unter

$code = implode($items);

Die folgenden beiden Zeilen ein und starten Sie im Debug-Modus:

debug($qst);
debug($items);
debug($code);
by s111972 (150 points)
Vielen Dank! nun funktioniert es!

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...