Hallo liebes SoSci Survey Team,
für meine Studie habe ich folgendes Design vorgesehen und komme gerade nicht weiter, wie ich das mit PHP-Code programmieren kann:
Die Teilnehmer sollen zufällig einer von zwei Bedingungen zugeteilt werden, in beiden Bedingungen bekommen sie aber die gleichen 21 Bilder in randomisierter Reihenfolge zu sehen. Auf jeder Seite soll jeweils ein Bild präsentiert werden und je zwei Fragen, wobei eine Frage in beiden Bedingungen gleich ist und die andere Frage unterschiedlich ist je nach Bedingung. Zusätzlich sollten die beiden Fragen auf jeder Seite in zufälliger Reihenfolge präsentiert werden, damit nicht immer die gleiche Frage zuerst kommt.
Bisher habe ich einen Zufallsgenerator für die zwei Bedingungen erstellt (1 = Read, 2 = Reply) mit der Einstellung 1 Zettel wird pro Interview gezogen und Gleichverteilte Ziehen (Ziehen ohne Zurücklegen). Ist das soweit richtig?
Unterhalb des Zufallsgenerators habe ich folgenden Code, der funktioniert auch, aber ist momentan nur für einw einzelne Seite und ohne die Randomisierungen. Ich hatte überlegt als nächstes shuffle und loopPage zu ergänzen, bin mir aber nicht sicher, ob das richtig ist und wie genau ich die zwei Randomisierungen implementieren kann, also dass die 21 Bilder in zufälliger Reihenfolge kommen und die zwei Fragen je Seite auch in randomisierter Reihenfolge erscheinen.
if (value('GR01') == 1) {
$i = array('01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21',);
shuffle($i);
// hier alle items 1 - 21 auflisten
# Item1
$item1q = array('RE'.$i[0], 'LI'.$i[0]);
shuffle($item1q);
$item1 = array('IT'.$i[0], $item1q[0], $item1q[1]);
# Item2
$item2q = array('RE'.$i[1], 'LI'.$i[1]);
shuffle($item2q);
$item2 = array('IT'.$i[1], $item2q[0], $item2q[1]);
# usw bis Item 21
// Reply Bedingung
} elseif (value('GR01') == 2) {
// nochmal array und shuffle
$i = array('01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21',);
shuffle($i);
// hier nochmal alle items 1 - 21 auflisten mit reply Frage
# Item1
$item1q = array('RP'.$i[0], 'LI'.$i[0]);
shuffle($item1q);
$item1 = array('IT'.$i[0], $item1q[0],$item1q[1]);
# Item2
$item2q = array('RP'.$i[1], 'LI'.$i[1]);
shuffle($item2q);
$item2 = array('IT'.$i[1], $item2q[0],$item2q[1]);
# usw bis Item 21
# Attention Check = Item 22, Index 21
$item22q = array('RE22', 'LI22');
shuffle($item22q);
$item22 = array('IT.$i[21], $item22q[0], $item22q[1]);
// Liste der Fragen erstellen
if (!isset($fragen)) {
// Liste der Frage-Kennungen definieren
$fragen = [
$item1,
$item2,
...
$item21
];
// Attention Check an fester Position in der Mitte plazieren
array_splice($fragen, 10, 0, $item22); // attention check an Index 10 einfügen
// Die Rotation für eine eventuelle Wiederholung der Seite zwischenspeichern
registerVariable($fragen);
}
// Teil 2: Fragen getrennt auf seperaten Seiten anzeigen
$a = loopPage(count($fragen));
question($fragen[$a][0]);
question($fragen[$a][1]);
question($fragen[$a][2]);