0 votes
in SoSci Survey (dt.) by s133062 (110 points)
closed by SoSci Survey

Hallo,

in einem Fragebogen wiederhole ich zwei Seiten zwölf Mal:

loopToPage('K3', 12);

und ich speichere die Seitenzahl in eine Variable, die um 1 größer als der loopIndex() ist (also 1 beim ersten Aufruf der Seite, 2 beim zweiten Aufruf, etc...)

$seitenzahl = loopIndex() + 1;

Auf der ersten der beiden zu wiederholenden Seiten wird ein Schieberegler eingebunden, bei dem eingestellt ist, dass alle Items beantwortet werden müssen. Das funktioniert auch alles bestens, außer wenn jemand nicht alle Items ausfüllt.
Dann wird zwar die Seite wiederholt, aber der loopIndex() gibt einen Wert aus, der 1 zu klein ist (außer auf der ersten Seite, da ist loopIndex() 0 und bei der Wiederholung der Seite wird nicht -1, sondern ebenfalls 0 ausgegeben).
Also:
bei loopIndex() = 0 und ein Item wird nicht ausgefüllt: nächster loopIndex() ist 0
bei loopIndex() = 1 und ein Item wird nicht ausgefüllt: nächster loopIndex() ist 0
bei loopIndex() = 2 und ein Item wird nicht ausgefüllt: nächster loopIndex() ist 1
bei loopIndex() = 3 und ein Item wird nicht ausgefüllt: nächster loopIndex() ist 2
usw...

Ich habe einen Workaround dafür gefunden:

if (getAnswerMissing() && ($seitenzahl_vorher > 1)) {
    $seitenzahl += 1;
}

und

registerVariable($seitenzahl);

und ganz am Anfang der Seite:

if (isset($seitenzahl)) {
    $seitenzahl_vorher = $seitenzahl;
} else {
    $seitenzahl_vorher = 1;
}

Gibt es dafür noch eine elegantere Lösung?

Zudem ist es so, dass wenn ein Item vergessen wurde, dann werden die Schieberegler nochmal angezeigt (was auch so sein soll), und wenn man dann auf "Weiter" klickt, werden die Schieberegler noch einmal angezeigt (diesmal ohne, dass ein Item rot wird und ohne "Bitte beantworten Sie auch diese Frage – Ihre Antwort auf die Frage ist für die Studie sehr wichtig."). Erst wenn man dann nochmal auf "Weiter" klickt, kommt man weiter.
Das ist für meine Studie nicht schlimm, irritiert mich jedoch etwas, weil ich es mir zunächst nicht erklären konnte. Oder liegt das daran, dass der loopIndex() 1 zu klein ist? (Dafür würde sprechen, dass dieser Effekt erst ab Seite 2 auftritt, und nicht schon auf Seite 1, wo der loopIndex() nicht von 0 auf -1 korrigiert wird, sondern bei 0 bleibt.)

Vielen Dank schon mal! :-)

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 (320k points)
Das klingt nach einem bekannten Problem, welches dann auftritt, wenn in einer Seteinabfolge oder einem Loop leere Seiten vorkommen. Ist das bei Ihnen der Fall, gibt es also Seiten, die selbst keinen Inhalt zeigen?

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

...