0 votes
in SoSci Survey (dt.) by s049756 (110 points)

Hallo zusammen,

ich möchte gerne die Reihenfolge von Blöcken rotieren (A1-A3, B1-B3, C1-C3, D1-D3), was ich auch erfolgreich mit setPageOrder() hinkriege.
Zusätzlich würde ich gerne eine Seite E durch eine Randomisierung per Zufallsgenerator entweder VOR den Blöcken A-D oder NACH den Blöcken A-D schalten. Ich habe dies mit folgendem PHP-Code probiert.

$zahl00 = value('ZG02'); // Zufallzahl wurde von ZG02 gezogen
if ($zahl00 == 1) {
setPageOrder('MRS','RanRot-Vende','SD1');
} elseif ($zahl00 == 2) {
setPageOrder('RanRot-Vende','MRS','SD1');
}

(MRS ist die Kennung für meine eben symbolisch bezeichnete Seite E. RanRot-Vende ist der komplette Block an Seiten innerhalb dessen ich die Blöcke A-D rotieren lasse, dh. der setPageOrder Befehl zur Rotation der Blöcke steht nach dem oben aufgeführten setPageOrder Befehl)

Bei $zahl00 == 1 klappt alles wie gewünscht; bei $zahl00 == 2 folgt nach den Blöcken direkt SD1 ohne meine Seite E (MRS). Kann es sein, dass der Befehl setPageOrder zur Rotation der Blöcke (der ja nach dem oben beschriebenen setPageOrder Befehl kommt) den vorherigen Befehl (zur Randomsierung der Seite E) unterbricht und deswegen wie gehabt weiter mit SD1 fortgefahren wird?

Wenn ja, wie könnte ich die beiden Befehle zusammenführen? Oder muss ich es über zwei parallel laufende Fragebögen umsetzen?

Vielen Dank für die Hilfe!

1 Answer

0 votes
by SoSci Survey (328k points)

Kann setPageOrder() nicht ineinander geschachtelt funktionieren?

Nein. Wie in der Anleitung angegeben, hebt ein neuer Aufruf von setPageOrder(), setNextPage(), loopPage() oder loopToPage() eine aktive Seitenabfolge auf und setzt eine neue.

Man kann aber die Blöcke vorab gleich auf Seiten-Basis definieren und dann nicht nur die Reihenfolge der Blöcke, sondern auch deren enthaltene Seiten rotieren, vgl. Rotation und Mischen von Blöcken. Mit anderen Worten: Man kümmert sich gleich um alles auf einmal.

In Ihrem Fall würden Sie das Array für den betroffenen Block erstmal mit dem IF definieren (aber eben noch nicht an setPageOrder() übergeben), dann die Blöcke mischen und dann erst setPageOrder() verwenden.

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

...