0 votes
in SoSci Survey (dt.) by s269932 (120 points)

Wie Sie empfohlen haben, habe ich nun eine normale Randomisierung gemacht. Da hat auch alles geklappt.

Meine neue Frage ist, wie kann ich einstellen, dass bestimmte Seiten zufällig angeordnet angezeigt werden (s.PHP-Code). Ich würde gerne die Seiten AI01-AI37, EI01-EI37 und MI01-MI37 zufällig angeordnet präsentieren (je nach Bedingung).

$zahl = value('ZG01');

//Abhängig von der Ziehung wird einer von drei Pfaden verwendet

if ($zahl ==1) {
setPageOrder('A1,CN1,AI01-AI37,A2,CN2,INS,AWE,EH,TS,DN1,DN2,RO,end');

} elseif ($zahl == 2) {
setPageOrder('A1,CN1,EI01-EI37,A2,CN2,INS,AWE,EH,TS,DN1,DN2,RO,end');

} else {
setPageOrder('A1,CN1,MI01-MI37,A2,CN2,INS,AWE,EH,TS,DN1,DN2,RO,end');
}

Ich habe es mit Fragen rotieren usw. versucht, jedoch hat das nicht geklappt.

related to an answer for: Zufallsauswahl für Fragebögen

1 Answer

0 votes
by SoSci Survey (327k points)

Dafür müssen Sie die Seiten bereits rotiert an setPageOrder() übergeben. Das klingt jetzt schlimmer als es ist. Ich gehe hier der Einfachheit halber mal davon aus, dass Sie die Seiten fortlaufend nummeriert haben. Machen wir also erstmal ein Array mit allen Seiten. Und erstmal nur für Bedingung 1.

$section = 'AI';
$pages = [];
for ($i=1; $i<=37; $i++) {
  $pages[] = $section.sprintf('%02d', $i); 
}

Der Punkt verbindet die Rubrik (hier "AI") mit der Zahl, und das sprintf() sorgt in dieser Form für die führende Null. Diese Liste können Sie nun einfach rotieren:

shuffle($pages);

Und jetzt können Sie das direkt an setPageOrder()übergeben.

setPageOrder('A1,CN1', $pages, 'A2,CN2,INS,AWE,EH,TS,DN1,DN2,RO,end');

Soweit ich sehe, variiert in Ihrem Code ausschließlich die Kennung der Rubrik, also müssten Sie nur das section = 'AI'; in den IF-Filter packen, und alles andere kann unterhalb platziert werden.

by s269932 (120 points)
Super, das hat geklappt! Vielen Dank für die schnelle Hilfe!

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

...