0 votes
in SoSci Survey (dt.) by s171356 (140 points)

Guten Tag

Ich habe zwei Abfolgen von Seiten, die ich gerne rotieren/randomisieren würde. Ich habe das mit UrnDraw probiert und jetzt gemerkt, dass nur eine der beiden Abfolgen korrekt funktioniert.
Wie es scheint, funktioniert setPageOrder nicht, wenn es einen Loop drin hat.
Leider habe ich nichts dazu gefunden, wie ich die Seiten sonst rotieren könnte.
Wie kann ich da vorgehen?

1 Answer

0 votes
by SoSci Survey (306k points)

Wie es scheint, funktioniert setPageOrder nicht, wenn es einen Loop drin hat.

Das ist korrekt, vgl. Hinweise in der Anleitung zu setPageOrder().

Leider habe ich nichts dazu gefunden, wie ich die Seiten sonst rotieren könnte.

Es gibt unterschiedliche Möglichkeiten: (a) Sie können den Loop direkt in der Seitenabfolge vorsehen, die Sie mittels setPageOrder() definieren. Oder (b) Sie können mittels goToPage() springen anstatt setPageOrder() zu verwenden, aber dann müssen Sie zum zweiten Teil auch nochmal springen. Da hierbei mehrere PHP-Codes korrekt zusammenarbeiten müssen, ist das deutlich fehleranfälliger. Außerdem (c) kann es in manchen (wenigen) Fällen sinnvoll sein, auf loopPage() zu verzichten und stattdessen einzelne Seiten zu verwenden.

Was die beste Lösung ist, hängt von Ihrem konkreten Design ab: Warum wird eine Seite mittels loopPage() wiederholt und wie häufig? Und wie sehen die unterschiedlichen Seitenabfolgen denn genau aus?

Am Rande: urnDraw() bzw. die Urnen-Funktion ist in aller Regel nur zweite Wahl. Mit einem Zufallsgenerator klappt es meist deutlich komfortabler. Aber Wenn Sie jetzt schonmal eine Urne haben, ist diese auch in Ordnung.

by s171356 (140 points)
edited by s171356
Okay. Ich denke, dass Option b mit goToPage() wohl das geeignetste wäre.

Also es gibt zwei Blöcke mit Seiten, die ich ausbalanciert zeigen möchte.
Bei jedem Block hat es jeweils einen Loop drin mit Bildern, die gezeigt werden.
Bei der einen Abfolge gibt es zuerst eine Instruktion, dann kommen die Bilder und bei der anderen gibts noch eine Lernphase und dann die Bilder.

Hier ist mal ein Link um das zu verdeutlichen:
https://www.soscisurvey.de/mbdm/?act=hF7VEtqrox8NFp6w9CcuEM2s

Mit goToPage() müsste ich vermutlich trotzdem Zufallsgeneratoren anlegen?
by SoSci Survey (306k points)
> Bei der einen Abfolge gibt es zuerst eine Instruktion, dann kommen die Bilder und bei der anderen gibts noch eine Lernphase und dann die Bilder.

Evtl. wäre es sinnvoll, loopPage() durch eine Zuordnungsaufgabe zu ersetzen. Dort kann man auch recht bequem Bilder "abspulen". Und das Eingabeformat würde auch passen.

> Mit goToPage() müsste ich vermutlich trotzdem Zufallsgeneratoren anlegen?

Wann immer Sie eine experimentelle Randomisierung benötigen, brauchen Sie entweder einen Zufallsgenerator oder eine Urne (das ist die Vorgänger-Funktion des Zufallsgenerators).
by s171356 (140 points)
Den Loop möchte ich gerne so lassen, damit das auch alles richtig funktioniert.

Deshalb setze ich auf goToPage.
Ich habe das nun wie folgt versucht:

$RFzahl = value('RF01');
if ($RFzahl == 1) {
    goToPage('instr1');
} elseif ($RFzahl == 2) {
    goToPage('Lernp1');
}

registerVariable($RFzahl);

Bei einer 1 würde der FB die Blöcke normal durchlaufen und bei einer 2 eben zuerst den zweiten Block und dann den ersten und dann weiter.

Am Ende von Block 1 habe ich folgenden Code:

if ($RFzahl == 2) {
    goToPage('guessLoss');
}

Und am Ende von Block 2 habe ich diesen:

if ($RFzahl == 2) {
    goToPage('instr1');
}

Funktioniert allerdings nicht. Müsste ich da mit 2 Zufallsgeneratoren arbeiten oder etwas am Code verändern?
by SoSci Survey (306k points)
Schwer zu beantworten, da ich die Kennungen Ihrer Seiten nicht kennen. Als erstes würde ich diese Zeile entfernen...

registerVariable($RFzahl);

Und stattdessen gleich schreiben:

if (value('RF01') == 1) {
    goToPage('instr1');
} else {
    goToPage('Lernp1');
}

Entsprechend dann auch bei den beiden anderen Filtern.

> Müsste ich da mit 2 Zufallsgeneratoren arbeiten

Nein, definitiv nicht ... Sie haben ja nur 2 Bedingungen und kein mehrfaktorielles Design. Und selbst dafür wären mehrere Zufallsgeneratoren nicht optimal.

Was genau funktioniert denn und was nicht? Und was zeigt die Debug-Information dazu an?
by s171356 (140 points)
Besten Dank für Ihre Antwort. In der Zwischenzeit funktioniert alles so, wie es soll.

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

...