0 votes
in SoSci Survey (dt.) by s112121 (140 points)

Guten Tag,

angenommen ich stelle die Frage "Wie geht es dir?" in einem Szenario 1 und stelle die gleiche Frage in einem Szenario 2. Dies geschieht auf voneinander getrennten Seiten. Falls es eine Differenz zwischen den zwei Antwortwerten gibt, soll ein bestimmtes Item eingeblendet werden, falls es keine Differenz gibt, soll kein Item eingeblendet werden.

Ist das eine Filterfunktion? Wie mache ich das am besten?

Vielen Dank im Voraus

1 Answer

0 votes
by SoSci Survey (305k points)

Wenn Sie das Item erst weiter hinten (also nach der zweiten beschriebenen Seite) anzeigen möchten, dann würde der Filter ungefähr wie folgt aussehen:

if (value('AB01') != value('AB02')) {
  /// Frage oder Item anzeigen
}

Wenn es um ein einzelnes Item in einer Frage geht - und alle anderen sollen immer gezeigt werden - sähe der Inhalt wie folgt aus:

if (value('AB01') != value('AB02')) {
  question('CC02');
} else {
  question('CC02', '1-4,6-10');
}
by s112121 (140 points)
edited by s112121
Leider ist es doch noch etwas komplexer:

Wenn der Wert von AB01_01 ÜBER AB02_01 liegt, soll eine spätere bestimmte Frage CC angezeigt werden. Wenn der Wert von AB01_01 UNTER AB02_02 liegt, soll jedoch eine andere Frage DD angezeigt werden. Dh es geht darum, eine Differenz zu entdecken und gleichzeitig zu schauen, wann der Wert von AB_01 unter AB02_01 liegt und umgekehrt und dann eine Reaktion auszulösen.

Danke im Voraus.
by SoSci Survey (305k points)
Nun, dass dem Operator für "ungleich" (!=) können Sie natürlich auch "größer als" (>) oder "kleiner als" (<) verwenden. In Ihrem Fall wäre es eine elseif-Konstruktion, da Sie ja zwei Bedingungen prüfen möchten.
by s112121 (140 points)
Danke! ich habe jetzt diesen Code benutzt:

if (value('AV02_01') > value('AV01_01')) {
question('UN01');}

Kann ihn leider noch nicht ausprobieren, aber ich denke das müsste stimmen. wenn ich mit dem Wert von AV02_01 über AV01_01 liege gelange ich zu UN01. Ich hoffe jedoch erst 12 Seiten später. Ist dies damit eingestellt?
Falls der Wert umgekehrt, dh unter dem anderen liegt, dafür wende ich dann einen neuen Code an.

gleichzeitig müsste ich einige Fragen(bzw Seiten; jede dieser Fragen ist auf einer Seite) bei dieser Bedingung ausblenden. ich finde die Funktion bzw den Code dafür einfach nicht. Über einen Tipp wäre ich sehr dankbar.
by SoSci Survey (305k points)
>  Ich hoffe jedoch erst 12 Seiten später. Ist dies damit eingestellt?

Nein, der Filter ersetzt (!) die Frage UN01 - er muss also an deren Stelle auf der entsprechenden Seite. Zum Testen können Sie im Debug-Modus (gelber Pfeil) einfach zwischen den Seiten springen.

> gleichzeitig müsste ich einige Fragen(bzw Seiten; jede dieser Fragen ist auf einer Seite) bei dieser Bedingung ausblenden.

Da suchen Sie vermutlich goToPage().
by SoSci Survey (305k points)
> Ich möchte gezielt einige Seiten ausblenden, wenn die Bedingung erfüllt ist.

Genau. Ein goToPage('next') oben auf der Seite überspringt die Seite = blendet sie aus.

> Oder wird durch den genannten code, die Frage UN01 nur bei eben dieser Bedingung aufgezeigt und sonst für alle anderen Fälle(zb gleiche Werte oder <) schon automatisch ausgeblendet?

Der Trick ist, dass Sie die Frage überhaupt nicht (anderweitig) in den Fragebogen einbinden. Nur wenn der Code mit dem question()-Befehl ausgeführt wird, wird die Frage (an dieser Stelle) eingebunden.

> Ich habe den Code nun auf der Seite der Frage UN01(die bei Bedingung angezeigt werden soll)

Wie gesagt: Die Frage UN01 muss aus der Seite entfernt werden. Das question() und das Hineinziehen der Frage in den Fragebogen sind äquivalent.

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

...