0 votes
in SoSci Survey (dt.) by s130803 (420 points)

Hallo,

ich möchte die Teilnehmenden meines Fragebogens in vier Gruppen einteilen.

Gruppe A
Gruppe B
Gruppe C
Gruppe D

Die Randomisierungsvariable funktioniert einwandfrei und die Zuteilung auch. Das Darstellen von Fragen abhängig von der Gruppe läuft auch wunderbar.

Jetzt möchte ich zusätzlich die Antworten auf eine Frage (bspw. Q007) nutzen, die sechs verschiedene Antwortmöglichkeiten hat. Basierend auf der Antwort auf diese Frage und der zugeteilten Gruppe, sollen die Teilnehmenden auf einer anderen Seite des Fragebogens unterschiedliche Fragen präsentiert bekommen.
Mein PHP-Code hierzu sieht folgendermaßen aus:

$zahl = value('Q039');  // Auslesen der gezogenen Zufallszahl aus Q039
$department = value('Q007');

if ($zahl == 1 or $zahl == 3 and $department == 1) {
  question('Q027');  
} elseif ($zahl == 1 or $zahl == 3 and $department == 2) {
  question('Q029');  
} elseif ($zahl == 1 or $zahl == 3 and $department == 3) {
  question('Q031');
} elseif ($zahl == 1 or $zahl == 3 and $department == 4) {
  question('Q033');
} elseif ($zahl == 1 or $zahl == 3 and $department == 5) {
  question('Q035');
} elseif ($zahl == 1 or $zahl == 3 and $department == 6) {
  question('Q037');
} elseif ($zahl == 2 or $zahl == 4 and $department == 1) {
  question('Q034');
} elseif ($zahl == 2 or $zahl == 4 and $department == 2) {
  question('Q028');
} elseif ($zahl == 2 or $zahl == 4 and $department == 3) {
  question('Q030');
} elseif ($zahl == 2 or $zahl == 4 and $department == 4) {
  question('Q038');
} elseif ($zahl == 2 or $zahl == 4 and $department == 5) {
  question('Q032');
} elseif ($zahl == 2 or $zahl == 4 and $department == 6) {
  question('Q036');
} 

Wenn also die Teilnehmenden in Gruppe A oder C sind und in Frage 07 Antwortmöglichkeit 1 ausgewählt haben, möchte ich, dass ihnen Q027 präsentiert wird usw.

Der Code funktioniert allerdings nicht in jedem Pretest. Es ist nicht reproduzierbar, aber für manche Werte Kombinationen bekomme ich zum Teil die falschen Fragen angezeigt. Kann das etwas mit dem Cache zu tun haben?
Besteht die Möglichkeit zum Beispiel 100 Teilnahmen zu simulieren und zu schauen, ob der Fehler doch zu reproduzieren ist?

Vielen Dank!

1 Answer

+1 vote
by SoSci Survey (305k points)
selected by s130803
 
Best answer

Sie erinnerung sich noch an Mathe und die "Punkt vor Strich" Regel? So etwas gibt es auch für Bool'sche Operatoren. Das "and" ist stärker als das "or".

Ein paar zusätzliche Klammern sollten Ihr Problem lösen:

(($zahl == 1 or $zahl == 3) and $department == 1) 

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

...