0 votes
in SoSci Survey (dt.) by s124078 (245 points)

Die Teilnehmenden bearbeiten auf einer Seite drei Aufgaben. Auf der nächsten Seite möchte ich ihnen eine Rückmeldung darüber geben, ob diese Aufgaben richtig waren - und zwar soll ZZ01 angezeigt werden, wenn die Antworten auf alle drei Fragen richtig sind (s. Kombination der Antworten im Code).
In allen anderen Fällen soll ZZ02 angezeigt werden.
Der folgende Code funktioniert nicht. Können Sie mir sagen, was ich ändern muss?
Viele Dank im Voraus!

if (value('AD01') === 0 && value('AD03') === 1 && value('AD04') === 1) {
    text('ZZ01');
} else {
    text('ZZ02'); 
}

1 Answer

0 votes
by SoSci Survey (327k points)
selected by s124078
 
Best answer

Wahrscheinlich liegt das Problem in den dreifachen Gleichheitszeiten (===). Bitte versuchen Sie es einmal mit doppelten (==).

if (
    (value('AD01') == 0) && 
    (value('AD03') == 1) && 
    (value('AD04') == 1)
) {
    text('ZZ01');
} else {
    text('ZZ02'); 
}

Hintergrund: Die Funktion value() gibt die Antworten in aller Regel als String zurück und nicht als Integer-Variable. Daher liefert der Vergleich mit frei Gleichheitszeichen (welcher auch die Art der Daten prüft) ein "passt nicht".

Prüfen Sie bitte auch den Antwortcode für AD01. Der Variablenname suggeriert eine Auswahlfrage (eine offene Texteingabe hätte eher die Kennung AD01_01). Aber den Antwortcode 0 gibt es in einer Auswahlfrage nicht. Die erste Option hat hier i.d.R. den Wert 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

...