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

Ich würde gerne in meinem Fragebogen eine Verknüpfung erstellen, dass eine bestimmte Seite angezeigt wird, wenn ich zwei Fragen beantwortet habe. Ein Beispiel wäre:
Frage 1 (JS01) wir mit Human Resources beantwortet, Frage 2 (JS02) wird mit South Germany beantwortet. Daraufhin soll die Seite "HR South" angezeigt werden.

Die Beschreibung unter der Seite Mehrere Bedingungen verknüpfen habe ich mir angeschaut, allerdings hat sie mir nur bedingt weiter geholfen, da es hier ja immer nur im eine einzige Frage geht und nicht um zwei getrennte Fragen.

Den PHP-Code habe ich versucht zu replizieren und er sieht wie folgt aus:

if ((value('JS01_03') == 2) and (value('JS02_01') == 2)) {
  goToPage('HR South');
}

Allerdings wird mir beim Anzeigen des Fragebogens die folgende Debug-Meldung gezeigt: The variable JS01_03 has not been asked on a previous page during this interview. Therefore value() cannot determine any answer, yet.

Ich habe auch versucht den PHP-Code dann auf eine andere Seite zu machen, die Fehlermeldung blieb dann aber die gleiche.

Wäre super, wenn mir hier jemand weiterhelfen könnte! Danke schon mal!

1 Answer

0 votes
by SoSci Survey (306k points)

Daraufhin soll die Seite "HR South" angezeigt werden.

Für solch eine Filterbedingung muss man umgekehrt denken. Und zwar: Wenn die Bedingung nicht erfüllt ist, dann soll die Seite übersprungen werden.

Der Filter muss also auf der Seite "HR South" ganz oben stehen und dort umgedreht werden. Das geht einfach mit einem Ausrufezeichen (!). Beachten Sie bitte die zusätzlichen Klammern. Und das Überspringen einer Seite funktioniert einfach mit einem goToPage('next').

if (!((value('JS01_03') == 2) and (value('JS02_01') == 2))) {
  goToPage('next');
}

The variable JS01_03 has not been asked on a previous page during this interview.

Vermutlich hatten Sie versucht, den Filter auf derselben Seite zu platzieren wie Ihre Frage JS01. Das kann nicht funktionieren, vgl. Problemlösung bei Filterfragen -> Top 1. Dadurch dass der Filter ohnehin auf die Seite "HR South" umzieht, dürfte sich dieses Problem von alleine lösen.

by s149710 (110 points)
Vielen Dank für die ausführliche Antwort!
Ich habe das Ganze jetzt nochmals versucht und den PHP-Code auf eine andere Seite genommen.
Die Fehlermeldung kommt allerdings noch immer. Ich habe auch überprüft, ob die Variablen der Frage JS01 so passen und es müsste soweit alles stimmen. Auch wenn ich die Frage JS01 auf eine andere Seite mache wie die Frage JS02 funktioniert es nicht und die Fehlermeldung kommt weiterhin. Woran könnte es denn noch liegen?
by SoSci Survey (306k points)
Sie haben zum Testen schon auf der Seite begonnen, wo JS01 abgefragt wird (oder von weiter vorne), ja? Wenn ja, dann posten Sie bitte die Debug-Information der Seite. Danke.
by s149710 (110 points)
Ich habe beides getestet, mehrere Male. Zum einen habe ich vom Anfang des Fragebogens angefangen, zum anderen direkt ab der Frage wo JS01 abgefragt wird. Bei beiden Fällen kommt die gleiche Meldung: "The variable JS01_03 has not been asked on a previous page during this interview. Therefore value() cannot determine any answer, yet."
by SoSci Survey (306k points)
Wie gesagt - bitte ergänzen Sie die Debug-Information: https://www.soscisurvey.de/help/doku.php/de:create:debugging
by s149710 (110 points)
Hier die Debug-Information die angezeigt wird:
[Information]    Interview number 100 is to be continued
[Information]    Questionnaire Explanations from project jobrecommender will be used
[Information]    Retention period on page 7 has been 8 seconds
[Processing]    Reading answers from page 7
[Information]    Answer to JS01 = 3
[Information]    Answer to JS02 = 1
[Information]    100% of the questions have been answered so far
[Processing]    Create page 8 in questionnaire Explanations
[Information]    value("JS01_03") = ???
[Information]    Go to next page (No. 9)
[Processing]    Create page 9 in questionnaire Explanations
[Content]    Create question BB02
by SoSci Survey (306k points)
> [Information]    Answer to JS01 = 3
> [Information]    Answer to JS02 = 1

Es scheint so, dass JS01 und JS02 Auswahlfragen sind. Die korrekten Variablennamen lauten JS01 und JS02. Der Filter entsprechend:

if (!((value('JS01') == 3) and (value('JS02') == 1))) {
  goToPage('next');
}
by s149710 (110 points)
Perfekt, so hat es funktioniert! Vielen Dank!!

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

...