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

0 votes

Ich suche für meinen Fragebogen eine Möglichkeit, den Teilnehmern eine Zufallsauswahl von Seiten zu zeigen. Sie sollen dabei zufällig 4 von insgesamt 8 Stimulusseiten und 1 von insgesamt 3 Kontrollseiten zu sehen bekommen, wobei die Reihenfolge hierbei randomisiert sein soll, also auch die Abfolge Stimuli und Kontrollseite sollen untereinander gemischt sein. Nach der letzten Stimulus bzw Kontrollseite soll es mit dem Fragebogen weiter gehen.

Ich habe zu Beginn Seiten, die alle sehen sollen. Die Seiten nach den Stimuli sollen auch alle bekommen.

Ich habe einen Zufallsgenerator mit den 8 Stimulusseiten + einen PHP Code, mit dem ich die 4 von 8 Stimulusseiten ziehe und die Reihenfolge randomisiere, aber wie zusätzlich 1 von 3 Kontrollseiten ziehen kann, habe ich leider nicht herausgefunden. Kann man das in den untenstehenden Code noch einfügen?

Vielen Dank schon mal für den Support!

Der PHP Code:

$pages = array();
for ($i=1; $i<=4; $i++) {
$pages[] = value(id('ZG01', $i), 'label');
}
setPageOrder($pages, 'done');

in SoSci Survey (dt.) by s060400 (155 points)

1 Answer

+1 vote

Ich würde empehlen, dass Sie nicht einen, sondern zwei Zufallsgeneratoren verwenden - einen für die 4 aus 8 Stimulusseiten und einen für die 1 aus 3 Kontrollseiten. Wenn Sie dort direkt die Seitenkennungen hineinlegen, können Sie ganz bequem mit valueList() arbeiten:

$set = array_merge(
  valueList('TG01', 'label'),
  array(value('ZG02'))
);
shuffle($set);
setPageOrder($set, 'done');

Methodisch würde ich allerdings hinterfragen, ob es sinnvoll ist, drei unterschiedliche Kontrollseiten zu verwenden. Hier vermischt man u.U. die Kontrolle (fix) mit einem Zufallsfaktor.

by SoSci Survey (55.7k points)
Vielen Dank!
Soweit funktioniert es, bis auf eine Warnung, die im Debug Modus immer auftaucht:
"In setPageOrder() wurde eine Seite "3" angegeben, die es im Fragebogen nicht gibt."

Hier steht immer die Zahl der Seite, die vom zweiten Zufallsgenerator gezogen wurde. Er zieht also die Zahl und findet keine Seite mit dem Namen. Im Zufallsgenerator habe ich aber bei den einzelnen Codes die Seitenkennung zugewiesen. Woran kann das liegen, dass es nicht erkannt wird?

Die Debug-Informationen:

[Verarbeitung]    Springe zur Seite CoverPage (Nr. 5)
[Verarbeitung]    Erstelle Fragebogen-Seite Nr. 5
[Inhalt]    Erstelle Frage UN10
[Information]    Vom Zufallsgenerator UN10 wurden folgende Codes gezogen: 3, 4, 7, 2
[Inhalt]    Erstelle Frage UN11
[Information]    Vom Zufallsgenerator UN11 wurden folgende Codes gezogen: 3
[Information]    value("UN11") = 3
[Information]    Entsprechend setPageOrder() werden nun folgende Seiten gezeigt:
12 [Zensur], 7 [Plastikreis], 8 [Impfen], 9 [Zahnarzt], 17 [PX]


Mein Code:
$set = array_merge( valueList('UN10', null, 'label'), array(value('UN11')) ); shuffle($set); setPageOrder($set, 'PX');

das "null" habe ich eingefügt, da vorher eine Fehlermeldung kam. Ist das richtig so?
Ich habe jetzt den Code folgendermaßen umgeschrieben, damit scheint es zu funktionieren:

$set = array_merge( valueList('UN10', null, 'label'), valueList('UN11', null, 'label')) ; shuffle($set); setPageOrder($set, 'PX');

Jetzt will ich nur nochmal sichergehen, dass ich keinen Fehler eingebaut habe. Ist der Code so korrekt, oder muss ich daran etwas ändern?
Stimmt, dass NULL hatte ich vergessen. Der zweite Teil ist ein wenig komplizierter geschrieben als notwendig, aber korrekt.
...