0 votes
ago in SoSci Survey (dt.) by s123746 (165 points)
edited ago by SoSci Survey

Hallo,

ich habe folgenden PHP Code:

if (value('S119_01') == '') {
} elseif (value('S119_01') < 1) {
    goToPage('screenout');
} else {
    goToPage('DFOWDef');
}

Allerdings funktioniert die Weiterleitung zur screenout-Seite nicht.
Ich möchte Personen zur screenout-Seite weiterleiten, die einen Wert kleiner als 1 eingeben in ein offenes Textfeld (S119_01). Alle anderen, die 1 oder größer eingeben, sollen auf die nächste Seite weitergeleitet werden.
Wie kann ich den Fehler beheben? Vielen Dank vorab!

1 Answer

0 votes
ago by SoSci Survey (340k points)

Ich würde empfehlen, dass Sie den Screenout nicht auf eine separate Seite stellen, sondern direkt in den PHP-Code einbinden, vgl. Beispiel: Screenout

Das löst aber noch nicht das Filterproblem. Bitte posten Sie doch mal die Debug-Information die für diese Seite angezeigt wird, wenn Sie einen Wert < 1 eintragen.

ago by s123746 (165 points)
Danke für die schnelle Rückmeldung!

Debug Information zur bisherigen Lösung:
[Processing]    Reading answers from page 3
[Information]    Answer to S118 = 1
[Information]    Answer missing for S118_03
[Information]    Condition in filter S118/1 is not met.
[Information]    Answer to S113 = 1
[Information]    Answer missing for S113_06
[Information]    Condition in filter S113/1 is not met.
[Information]    Answer to S119_01 = 0
[Information]    Answer to S115 = 3
[Information]    100% of the questions have been answered so far
[Processing]    Create page 4 in questionnaire cfa_t0
[Content]    Create question A110

Ich würde auch lieber die vorgeschlagene Lösung ohne extra Seite nutzen. Allerdings erscheint bisher der Screenouttext (S116) immer automatisch auf der Seite unten, obwohl er ja erst angezeigt werden soll, wenn eine Zahl <1 eingetragen und die Seite abgeschickt wird. Hierzu habe ich folgenden Code probiert:
if (value('S119_01') < 1) {
  text('S106');  // Text zum Screenout anzeigen
  buttonHide();  // Weiter-Knopf ausblenden
   pageStop();  // Keine weiteren Inhalte auf der Seite anzeigen oder ausführen
}
und erhalte diese Debug-Information:
[Processing]    Create page 3 in questionnaire cfa_t1_copy01
[Content]    Create question S117
[Content]    Create question S118
[Content]    Create question S113
[Content]    Create question S119
[Content]    Create question S115
[Information]    value("S119_01") = ""
[Content]    Show text S106
[Content]    Processing of the pages was topped by pageStop()
Ich vermute, dass es an der leeren Textfeldeingabe liegt, die als <1 gewertet wird. Ich weiß aber leider noch nicht, wie ich es ändern kann, dass ein leeres Textfeld nicht automatisch den Screenout-Text erzeugt.
ago by SoSci Survey (340k points)
Wenn ich es richtig lese, haben Sie sowohl die Frage als auch den PHP-Code auf Seite 3. Bitte verschieben Sie den PHP-Code entweder in die "Verarbeitung der Antworten mittels PHP" unten oder an den Anfang der folgenden Seite.

Die Funktion value() kann die Antwort erst ermitteln, wenn der Befragte sie ausgewählt hat. Im Moment läuft erst Ihr Code, und dann wählt die Person die Antwort aus.
ago by s123746 (165 points)
Super, dankeschön! Mit dem Verschieben des Codes auf den Anfang der nächsten Seite klappt es jetzt.

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

...