0 votes
in SoSci Survey (dt.) by s130443 (185 points)
edited by s139847

Liebes Support-Team,

Das ist meine Situation:

Ich möchte eine Umfrage durchführen, bei der bestimmte Fragebögen in zufälliger Reihenfolge dargeboten werden.
Teilweise gehen Fragebögen über mehrere Seiten (diese sollen dann in dieser festen Reihenfolge präsentiert werden, C1-C4, D0-D6 im Code unten), teilweise nur über eine Seite (E), teilweise werden sie mithilfe eines php-Codes randomisiert auf mehreren Seiten präsentiert (A, B, beide werden letztlich auf je 3 Seite präsentiert).

Vorher ist eine Instruktionsseite mit html-code und folgendem php-Code:

$parts = array(
  'R1' => 'A',
  'R2' => 'B',
  'R3' => 'C1-C4',
  'R4' => 'D0-D6',
  'R5' => 'E'
);
// Die Schlüssel des obigen Arrays mischen
$keys = array_keys($parts);
shuffle($keys);
// Das Array sieht nun z.B. so aus: R2, R5, R3, R1, R4
 
// Für jeden Schlüssel die Position im gemischten Array abspeichern
put('AG06_01', array_search('R1', $keys) + 1);
put('AG06_02', array_search('R2', $keys) + 1);
put('AG06_03', array_search('R3', $keys) + 1);
put('AG06_04', array_search('R4', $keys) + 1);
put('AG06_05', array_search('R5', $keys) + 1);
 
// Jetzt noch die Seitenabfolge definieren
setPageOrder(
  $parts[$keys[0]],  // $keys[0] ist z.B. 'R2' und $parts['R2'] ist 'R2start-R2ende'
  $parts[$keys[1]],
  $parts[$keys[2]],
  $parts[$keys[3]],
  $parts[$keys[4]],
  'ANM'
);

Nach den Fragebögen soll es mit der Seite ANM weitergehen.
Ich habe die Frage AG06 als Interne Variable mit den 5 Variablen erstellt, mit den Beschriftungen 1, 2, 3, 4, 5. Die Variablennamen sind diejenigen, die oben im Code stehen.

Wenn ich meine Umfrage nun im Pretest durchführe, werden zwar Fragebögen randomisiert dargeboten, manchmal werden allerdings die Fragebögen doppelt angezeigt (mit den bereits von mir gesetzten Kreuzchen), während dann andere Fragebögen nicht angezeigt werden.

Wissen Sie, wo hier mein Fehler liegt?

Viele Grüße und vielen Dank im Voraus!!

1 Answer

0 votes
by s139847 (2.7k points)

Hallo,

wie funktioniert denn die Randomisierung, die Sie oben für A und B angesprochen haben? Es gibt einige Befehle, die setPageOrder() unterbrechen und zu Ihrer "normalen" Reihnfolge zurückkehren, da könnte das Problem her kommen.

Viele Grüße

by s130443 (185 points)
Hallo, vielen Dank für die schnelle Antwort. Die Randomisierung wird über folgenden Code erreicht:

if (!isset($itemsFA01)) {  // Eigentlich unnötig wegen unterdrücktem "weiter"-Button?
  $itemsFA01 = getItems('FA01', 'all');
  shuffle($itemsFA01);
  $random_pos1 = random ( 0, 7);
  $random_pos2 = random ( 8, 14);
  $random_pos3 = random ( 15, 21);

  array_splice( $itemsFA01, $random_pos1, 0);
  array_splice( $itemsFA01, $random_pos2, 0);
  array_splice( $itemsFA01, $random_pos3, 0);

  $itemsFA01 = array_chunk($itemsFA01, 7);
registerVariable($itemsFA01);
}
 
// Die Items über mehrere Seiten verteilt anzeigen
$i = loopPage(count($itemsFA01));
question('FA01', $itemsFA01[$i]);
by s139847 (2.7k points)
ah ja, ich denke da haben wir das Problem: loopPage() unterbricht setPageOrder(), siehe das wiki (https://www.soscisurvey.de/help/doku.php/de:create:functions:setpageorder). das führt dann zu dem oben angesprochenen Problem.
by s130443 (185 points)
Ohje, okay. Vielen Dank für den Hinweis! Gibt es eine Möglichkeit, dass ich am Ende sowohl die Randomisierung als auch die blockweise Rotation nutzen kann? Müsste ich alles in dem Code zur blockweisen Rotation zusammenschreiben?

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

...