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

Ich komme in meinem Code nicht weiter. Vielleicht können Sie helfen :)

In meinem Fragebogen lesen die Teilnehmer 12 Texte. Es gibt diese Texte in 4 Bedingungen (12x HL - Human Long; 12x HS - Human Short; 12x AL - Ai Long, 12x AS - Ai Short).

Zunächst verteilt eine Zufallszahl meine Teilnehmer in 4 Gruppen (a la LateinischenQuadrat) so dass jeder Teilnehmer insgesamt 12 Texte bekommen, jeweils 3 pro Bedingung.

Nachdem meine Teilnehmer diese Texte gelesen haben, soll es eine zweite Zufallszahl geben, welche den Teilnehmern 8 der bereitsgelesenen Texte erneut zeigt, mit anderen Fragen. Und hier bricht mein Code zusammen.

So sieht mein Code bisher aus

Zufallszahl 1

$pages1 = [['HL01', 'QHL01'], ['HS02', 'QHS02'], ['AL03', 'QAL03'], ['AS04', 'QAS04'], ['HL05', 'QHL05'], ['HS06', 'QHS06'], ['AL07','QAL07'], ['AS08', 'QAS08'], ['HL09', 'QHL09'], ['HS10', 'QHS10'], ['AL11', 'QAL11'], ['AS12', 'QAS12']];
$pages2 = [['HS01', 'QHS01'], ['AL02', 'QAL02'], ['AS03', 'QAS03'], ['HL04', 'QHL04'], ['HS05', 'QHS05'], ['AL06', 'QAL06'], ['AS07', 'QAS07'], ['HL08', 'QHL08'], ['HS09', 'QHS09'], ['AL10', 'QAL10'], ['AS11', 'QAS11'], ['HL12', 'QHL12']];
$pages3 = [['AL01', 'QAL01'], ['AS02', 'QAS02'], ['HL03','QHL03'], ['HS04', 'QHS04'], ['AL05', 'QAL05'], ['AS06','QAS06'], ['HL07', 'QHL07'], ['HS08', 'QHS08'], ['AL09', 'QAL09'], ['AS10', 'QAS10'], ['HL11', 'QHL11'], ['HS12','QHS12']];
$pages4 = [['AS01', 'QAS01'], ['HL02', 'QHL02'], ['HS03', 'QHS03'], ['AL04', 'QAL04'], ['AS05', 'QAS05'], ['HL06', 'QHL06'], ['HS07', 'QHS07'], ['AL08', 'QAL08'], ['AS09', 'QAS09'], ['HL10','QHL10'], ['HS11','QHS11'], ['AL12', 'QAL12']];

question('IN08'); // Zettel aus dem Zufallsgenerator ziehen

if (value('IN08') == 1) {
$pages = $pages1;
}
elseif(value('IN08') == '2') {
$pages = $pages2;

}
elseif(value('IN08') == '3') {
$pages = $pages3;

}
elseif(value('IN08') == '4') {
$pages = $pages4;

}

registerVariable($pages);
debug($pages);
shuffle($pages); // Reihenfolge der Profile randomisieren
setPageOrder($pages, 'Instruktion 2'); // Seitenabfolge anwenden

- dann kommen die Pages und Fragen -

- dann dachte ich es wäre am einfachsten, je nach Ergebnis aus Zufallsziehung 1, die Teilnehmer gleich auf unterschiedliche Seiten zu schicken, von dort dann separate Zufallszahlen zu ziehen. Aber hier bekommen ich Fehlermeldungen

if (value('IN08') == 1) {goToPage('Pretest 2') }
elseif (value('IN08') == 2) {goToPage('Pretest 3') }
elseif (value('IN08') == 3) {goToPage('Pretest 4') }
else (value('IN08') == 4) {goToPage('Pretest 5') }

und hier zum Beispiel dann wie Pretest 2 aussehen würde (das gibts dann in 4 Varianten wie gesagt)

$pages5 =[['KHL01'], ['KHS02'], ['KAL03'], ['KAS04'],['KHL05'], ['KHS06'], ['KAL07'], ['KAS08']];
$pages6 =[['KHL05'], ['KHS06'], ['KAL07'], ['KAS08'], ['KHL09'], ['KHS10'], ['KAL11'], ['KAS12']];
$pages7 =[['KHL01'], ['KHS02'], ['KAL03'], ['KAS04'], ['KHL09'], ['KHS10'], ['KAL11'], ['KAS12']];

question('IN09'); // Zettel aus dem Zufallsgenerator ziehen

if (value('IN09') == ‘5’) {
$pages = $pages5;
}
elseif(value('IN09') == '6') {
$pages = $pages6;

}
elseif(value('IN09') == '7') {
$pages = $pages7;

}

registerVariable($pages);
debug($pages);
shuffle($pages); // Reihenfolge der Profile randomisieren
setPageOrder($pages, 'AI Attitude'); // Seitenabfolge anwenden

1 Answer

0 votes
ago by SoSci Survey (345k points)

Die Darstellung über 48 Seiten ist nicht besonder elegant, aber man kann es schon so machen. Kompakter wäre es, mit loopToPage() zu arbeiten.

soll es eine zweite Zufallszahl geben, welche den Teilnehmern 8 der bereitsgelesenen Texte erneut zeigt, mit anderen Fragen.

Nach welcher Regel sollen die 8 Texte denn aus den 12 vorigen gezogen werden? Beliebig, zwei pro Bedingung oder wieder fix vordefiniert? Ihrem Code würde ich jetzt entnehmen, dass Sie zu jedem Set A ein fixes Set B vorbereiten möchten.

Wenn dem so ist, dann verwenden Sie doch einfach nochmal denselben PHP-Code, mit welchem Sie auch die erste Seitenabfolge definiert haben. Nur mit anderen $page1 u.s.w. Arrays.

Oder vielleicht haben Sie pro Bedingung auch 3 mögliche Sets, also 4x3 = 12 mögliche Sets für den zweiten Teil? Dann brauchen Sie nur eine Zahl zwischen 1 und 3 zu ziehen, und aus der Kombination der ersten und zweiten Ziehung würde sich dann das gewünschte Set ergeben.

Statt 12 einzelne Variablen zu definieren, können Sie da aber einfach mit einem Array arbeiten:

$pagesB = [
  '1-1' => [['KHL01'], ['KHS02'], ['KAL03'], ['KAS04'],['KHL05'], ['KHS06'], ['KAL07'], ['KAS08']],
  '1-2' => [['KHL05'], ['KHS06'], ['KAL07'], ['KAS08'], ['KHL09'], ['KHS10'], ['KAL11'], ['KAS12']],
  '1-3' => [['KHL01'], ['KHS02'], ['KAL03'], ['KAS04'], ['KHL09'], ['KHS10'], ['KAL11'], ['KAS12']],
  '2-1' => u.s.w.
];

$subset = value('IN08').'-'.value('IN09');
$pages = $pagesB[$subset];

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

...