0 votes
in SoSci Survey (dt.) by s093207 (280 points)

Hallo,

gern hätte ich alle Teilnehmenden unter 25 Jahre und über 70 Jahre zum Screen-Out geleitet.

Habe auf einer Seite mehrere Fragen mit Filterfunktion und am Schluss die Frage des Alters platziert. Auf der nächsten Seite habe ich folgenden PHP-Code platziert.

   if (!(
  (value('D006_01') == <25) ||
  (value('D006_01') == >70) ||
)) {
  goToPage('O101');
}

Irgendetwas stimmt aber nicht. Ich habe alle Filterfragen überprüft und keinen Fehler finden. Nachdem ich im Pre-Test die Eingaben getätigt habe, geht die Seite nicht weiter oder zum Screen-Out, sondern bleibt nochmal auf der gleichen Seite hängen. Danach kann ich auf Weiter klicken aber werden zum Screen-Out geleitet. Auch, wenn ich keine Frage falsch beantwortet habe...

Stimmt mein PHPCode? Kann das "ruckeln" ein Hinweis auf irgendeinen Fehler im Alters-PHP Code sein?

1 Answer

0 votes
by SoSci Survey (327k points)

Vermutlich hängt das mit einer Seitenabfolge und einer Seite zusammen, die nur PHP-Code aber keine Ausgabe beinhaltet. Ohnehin ist das goToPage()für einen Screenout wenig geeignet. Verwenden Sie stattdessen pageStop().

by s093207 (280 points)
Ok Danke aber, was mache ich jetzt?

pageStop() habe ich eingefügt.

Hier wäre der Pre-Test Link:

https://www.soscisurvey.de/Teilnahme_Experiment/?act=VpvPoLuENXzSseCfwcAfgpqK
by SoSci Survey (327k points)
Wie sieht Ihr PHP-Code denn aus? Zum pageStop() gehört ja auch noch ein Text der angezeigt werden soll und ein option(), s. die oben verlinkte Anleitung.
by s093207 (280 points)
Der PHP Code lautet:

if (!(
  (value('D006_01') == <25) ||
  (value('D006_01') == >70) ||
)) {
  pageStop('O101');
}



O101 ist das Outro das kommen soll, wenn die Befragten eben unter 25 oder über 70 Jahre alt sind.

Ein option() habe ich bisher nicht integriert. Lese ich mir die Anleitung zu option() durch, weiß ich auch nicht, wozu es einfügen sollte?
by SoSci Survey (327k points)
Lesen Sie die (kurze) Anleitung durch, die ich oben schon verlinkt hatte: https://www.soscisurvey.de/help/doku.php/de:create:functions:pagestop#beispielscreenout

Dort wird statt dem option('nextbutton', false) allerdings ein buttonHide() verwendet.

Ihr PHP-Code dürfte gar nicht laufen, weil das Oder (||) hinter der zweiten Bedingung dort nicht stehen sollte.
by s093207 (280 points)
Okay, ich habe es mir durchgelesen. Dort wird das Alter als Drop-Down verwendet. Eine Erläuterung zum Alter als offene Eingabe ist dort nicht hinterlegt.

Um sicherzugehen, dass ich in den Item-Einstellungen keine Einstellung getätigt habe, die zu einem Fehler führen könnte, habe ich aus Ihren Vorlagen das Alter in Form des Lückentextes übernommen. Mein Code (auf der nachfolgenden Seite, nach dem Item) lautet also wie folgt:


if ((value('SD02_01') < 25) or (value('SD02_01') > 70)) {
  text('screenout');
  buttonHide();
} else {
  goToPage('next');
}

Aber, es funktioniert dennoch nicht...
by SoSci Survey (327k points)
Das sieht eigentlich ganz gut aus. Allerdings fehlt mir noch ein pageStop(), falls nicht ausgeschlossen ist, dass unter dem PHP-Code noch weitere Elemente folgen.

if ((value('SD02_01') < 25) or (value('SD02_01') > 70)) {
  text('screenout');
  buttonHide();
  pageStop();
}

Was zeigt die Debug-Information auf der Seite denn an, wenn Sie als Alter z.B. 20 Jahre eingeben?
by s093207 (280 points)
Herrje, ich glaube ich habe es!

In einer anderen Frage, die der Support beantwortet hat stand, man muss den ScreenOut gar nicht in den Fragebogen einbauen.. das wusste ich nicht...

Sollte ich das nicht überlesen haben, obwohl es in einer Anleitung offensichtlich steht, wäre es sicher sehr hilfreich diese Info mit aufzunehmen :)
by SoSci Survey (327k points)
Danke für den Hinweis - ich habe den Hinweis in der Anleitung nochmal explizit ergänzt und die Anleitung gleich etwas vereinfacht.

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

...