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

Hallo zusammen,

ich habe folgendes Problem: In der Frage PW02 befindet sich ein Kontrollitem (PW02_05), das mit dem Wert '1' (trifft gar nicht zu) beantwortet werden muss, um bestanden zu werden.

Wird das Item richtig beantwortet (Wert='1') soll die Befragung einfach normal weitergeführt werden. Bei einer falschen Antwort (Wert='2-7') soll ein Text erscheinen und der Redirect 'Quality Fail' ausgelöst werden. Folgenden PHP-Code habe ich für diesen Filter auf der folgenden Fragebogenseite eingegeben:

if ((value('PW02_05') == 2) || (value('PW02_05') == 3) || (value('PW02_05') == 4) || (value('PW02_05') == 5) || (value('PW02_05') == 6) || (value('PW02_05') == 7)); {
    text('qualityfail');
    setStatus('quality fail');
}

Nun wird jedoch bei jeder Antwort auf PW02_05 (auch bei Wert='1') die Funktion ausgelöst. Den Fehler in meinem Code kann ich leider nicht finden.

Können Sie mir weiterhelfen, wo der Fehler liegen könnte bzw. wie die gewünschte Funktion umsetzbar wäre?

Liebe Grüße und vielen Dank!

1 Answer

0 votes
ago by SoSci Survey (352k points)

Den Fehler in meinem Code kann ich leider nicht finden.

Das liegt daran, weil er extrem gut versteckt ist. Und zwar hier:

... _05') == 7)); { ...

Der Strichpunkt (Semikolon) sorgt dafür, dass der Filter genau an dieser Stelle endet, und der restliche Code wird immer ausgeführt.

Ich würde übrigens empfehlen, den Code ein wenig zu vereinfachen:

if (value('PW02_05') != 1) {
    text('qualityfail');
    setStatus('quality fail');
}

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

...