0 votes
in SoSci Survey (dt.) by s123746 (155 points)
closed by SoSci Survey

Hallo,

ich möchte gerne Teilnehmende auf eine Screenout-Seite weiterleiten, die den Fragebogen nicht an einem Computer bzw. hinreichend großen Bildschirm ausfüllen.

Dazu habe ich bereits eine "Geräte und übermittelnde Variable" erstellt und Format und Bildschirmgröße ausgewählt. Darunter habe ich folgenden PHP-Code (beides auf der zweiten Seite des Fragebogens) platziert:

    if ((value('B107_ScW') < 1920) and (value('B107_ScH')< 1080)) {
  goToPage('SO Screen');
} else {
  goToPage('Screen');
}

if ((value('B107_FmF') == 3) or (value('B107_FmF' == 4) or (value('B107_FmF') == 5))) {
  goToPage('SO Screen');
} else {
  goToPage('Screen');
}

Leider scheint es nicht zu funktionieren. Die Fehlermeldung lautet:
Questionnaire Error (page 2)
The value() is missing a question or item label.
Questionnaire Error (page 2)
The interview tried to jump to page no. 2 (ID Screen) that has already been processed when running the current output. Please check if goToPage() creates a loop.

Können Sie mir helfen? Vielen Dank im Voraus!

closed with the note: Es liegen keine weiteren Informationen zu dem Problem vor, welche für eine hilfreiche Antwort erforderlich wären.
by SoSci Survey (327k points)
edited by SoSci Survey
Die Bildschirmgröße muss mittels JavaScript erhoben werden, das bedeutet, dass sie nicht direkt unterhalb der Frage zur Verfügung steht, sondern erst auf der folgenden Seite. Verschieben Sie den PHP-Code daher auf einer Seite hinter der Frage B107.

Die erste Fehlermeldung muss ich mir nochmal genauer ansehen. Posten Sie doch bitte dafür noch die Debug-Information der Seite, danke.
by s123746 (155 points)
Dankeschön, ich habe die Frage B107 jetzt auf die erste Seite verschoben, der PHP-Code folgt auf der zweiten. Die Fehlermeldungen haben sich nicht verändert. Die Debug-Information zu Seite 2 lautet:

[Processing]    Reading answers from page 1
[Information]    Answer to A102 = 1
[Information]    Condition in filter A102/1 is not met.
[Information]    Answer to B107_ScW = 1920
[Information]    Answer to B107_ScH = 1080
[Information]    100% of the questions have been answered so far
[Processing]    Create page 2 in questionnaire base
[Content]    Create question B105
[Content]    Create question B104
[Content]    Create question B102
[Information]    value("B107_FmF") = 1
[Information]    value("B107_FmF") = 1
[Processing]    Go to page Screen (No. 2)
[Processing]    Create page 2 in questionnaire base
by SoSci Survey (327k points)
Das sieht doch ganz gut aus ... Sie bekommen hier korrekte Werte für Bildschirmgröße und Form-Factor. Bitte beachte sie, dass das iPad sich selbst als Mac-Computer identifiziert, also nicht als Tablet.
by s123746 (155 points)
Dankeschön, ich habe jetzt nur die Bildschirmgröße als Variable genutzt und auf Seite 1 platziert.
Auf Seite 2 (die sonst nichts enthält) ist der PHP-Code:

   if ((value('B107_ScW') < 1920) and (value('B107_ScH') < 1080)) {
  goToPage('SO Screen');
} else {
  goToPage('Screen');
}

Screen ist Seite 3 (Fragebogen wird normal fortgesetzt) und SO Screen ist die Seite, auf der der Text steht, dass der Fragebogen aufgrund der zu kleinen Bildschirmgröße beendet wurde.

Obwohl mein Bildschirm, an dem ich es teste, eine höhere Auflösung als gefordert hat, werde ich trotzdem zur SO Screen-Seite weitergeleitet. Woran könnte das liegen?
by SoSci Survey (327k points)
Pauschal würde ich vermuten, dass es an der Reihenfolge der Seiten liegt, und dass goToPage() für einen Screenout nicht gut geeignet ist - pageStop() wäre da sinnvoller.

Aber für eine konkrete Antwort müsste ich Sie bitten, nochmal die Debug-Information zu posten.

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

...