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

Hallo,

für eine Randomisierung einer Seitenreihenfolge habe ich nach dem allgemeinen Teil eine weiter Seite erstellt mit einem Zufallsgenerator. Mein benutzter PHP-Code lautet wie folgt:

question('SD14');
$pages = valueList ('SD14', NULL, 'label');
setPageOrder ($pages, 'AU');

Nun habe ich folgendes Problem: Alle Seiten die nach dem Code kommen, werden doppelt angezeigt, wenn nicht alle Fragen beantwortet wurden und nachdem nachgehakt wurde (und zwar werden sie mit den Antworten die vorher schon gegeben wurden angezeigt). Ich habe bereits versucht den Code auf einer Seite mit Inhalt zu schieben, da ist das Problem aber nur noch größer geworden.

Können Sie mir weiterhelfen? Ich weiß nicht wo das Problem ist. Dies ist der Link zu meinem Pretest:

https://www.soscisurvey.de/helicopterparenting/?act=UAH57FvP4pIhK1DRkAPJhs7k

Weitere Anmerkung: Frage 6 auf Seite 2 ist eine Filterfrage. Option 1 muss abgehakt werden um Seite 5 angezeigt zu bekommen und Option 2 muss abgehakt werden um Seite 6 angezeigt zu bekommen (das sind auch die zwei Seiten die rotieren sollen).

1 Answer

0 votes
by SoSci Survey (330k points)

Alle Seiten die nach dem Code kommen, werden doppelt angezeigt

Das kann (mindestens) zwei Ursachen haben:

1) Die Seite AU steht nicht hinter den ganten Seiten, die in der Seitenabfolge definiert wurden.

2) Sie haben irgendwo auf dem Weg bis AU eine der folgenden Funktionen verwendet: setNextPage(), loopPage() oder setPageOrder()

Wenn Sie den Fragebogen im Debug-Modus starten und die Debug-Information aufmerksam verfolgen, sollten Sie sehen, ab wo die geplante Seitenabfolge verlassen wird.

by s087080 (110 points)
Hallo. Vielen Dank für die Antwort. Allerdings bin ich damit nicht weiter gekommen.

1) Die Seite AU steht hinter den Seiten, die in der Seitenabfolge definiert wurden.

2) Ich verstehe nicht ganz was damit gemeint ist. Ich habe die Funktion setPageOrder() wie in meiner Frage oben angegeben verwendet. Ich möchte ja, dass die Seiten die nach meinem allgemeinen Teil kommen rotieren und nach den rotierenden Seiten dann auf Seite 'AU' weitergemacht wird. Soweit ich das sehen kann, verlasse ich auch laut Debug-Informationen nicht die geplante Seitenabfolge. Es ist lediglich so, dass mir die Seiten nach der Nachhaken-Funktion erneut angezeigt werden.
Oder gibt es eine Alternative zu setPageOrder() die ich verwenden sollte?

Kann es vielleicht etwas mit der "Nachhaken"-Funktion zu tun haben? Wenn ich diese deaktiviere, werden mir keine doppelten Seite angezeigt. Es ist aber unbedingt notwendig, dass ich nachhake, um vollständige Datensätze zu gewährleisten.

Ich hoffe Sie können mir nochmal weiterhelfen. Vielen Dank!
by SoSci Survey (330k points)
> Kann es vielleicht etwas mit der "Nachhaken"-Funktion zu tun haben?

Ja, auch das ist möglich. Bitte prüfen Sie doch einmal, ob im Rahmen Ihrer Seitenabfolge leere Seiten übersprungen werden. Also Seite, die z.B. nur PHP-code enthalten aber selbst keine Inhalte anzeigen. Dies kann u.U. zu dem beschriebenen Problem führen.

> Frage 6 auf Seite 2 ist eine Filterfrage. Option 1 muss abgehakt werden um Seite 5 angezeigt zu bekommen und Option 2 muss abgehakt werden um Seite 6 angezeigt zu bekommen

Versuchen Sie bitte einmal, die Inhalte für beide Seiten auf eine zu packen und dann je nach Filter die richtigen Inhalte anzuzeigen. Womöglich löst das bereits Ihr Problem.

Sie haben oben einen Pretest-Link gepostet. Vielleicht können Sie noch einen Debug-Link (anzulegen in der gleichen Funktion) posten? Und verraten Sie bitte auch, auf welcher Seite der Befehl setPageOrder() steht.
by s087080 (110 points)
Danke nochmal für die Antwort.

> Bitte prüfen Sie doch einmal, ob im Rahmen Ihrer Seitenabfolge leere Seiten übersprungen werden.

Ja, Seite 4 wird übersprungen, denn sie enthält nur den PHP-Code. Allerdings habe ich bereits versucht den Code auf eine Seite mit Inhalt zu schieben, dies hat das Problem nicht gelöst. Wenn dann eine Antwort fehlt, wird mir die Seite immer und immer wieder angezeigt.

> Versuchen Sie bitte einmal, die Inhalte für beide Seiten auf eine zu packen und dann je nach Filter die richtigen Inhalte anzuzeigen. Womöglich löst das bereits Ihr Problem.

Seite 5 und 6 sollen getrennt voneinander abgefragt werden und rotieren, deswegen sind die Inhalte nicht auf einer Seite. Geht das auch wenn ich die Inhalte auf eine Seite packe?

Der Befehl setPageOrder() befindet sich auf Seite 4. Hier der Debug-Link:

https://www.soscisurvey.de/helicopterparenting/?act=cdr23sz5Ds2OYaDBr2xFhbQO

Vielen Dank.
by SoSci Survey (330k points)
> Seite 5 und 6 sollen getrennt voneinander abgefragt werden und rotieren

Das haben Sie bereits in der Seitenabfolge vorgesehen, die Sie mit setPageOrder() vorgeben? Dann ist das unproblematisch.

> Ja, Seite 4 wird übersprungen, denn sie enthält nur den PHP-Code. Allerdings habe ich bereits versucht den Code auf eine Seite mit Inhalt zu schieben, dies hat das Problem nicht gelöst. Wenn dann eine Antwort fehlt, wird mir die Seite immer und immer wieder angezeigt.

Das deutet darauf hin, dass das Problem genau mit der Seite zusammenhängt. Was für PHP-Code haben Sie denn auf der Seite?
by s087080 (110 points)
> Was für PHP-Code haben Sie denn auf der Seite?

Ich habe einen Zufallsgenerator (SD14) erstellt, der als Zettel die Seiten 5 und 6 enthält. Jeder Zettel soll pro Interview 2 mal gezogen werden, da beide Seiten (sollten die Bedingungen bei Frage 6 Seite 2 erfüllt sein) angezeigt werden sollen. Schließlich habe ich auf Seite 4 folgenden PHP-Code verwendet:

question('SD14');
$pages = valueList ('SD14', NULL, 'label');
setPageOrder ($pages, 'AU');

Seite 'AU' ist die Seite, auf der es nach den rotierenden Seiten weitergehen soll. Ist der Code falsch? Gibt es eine Alternative die ich verwenden kann?

Vielen Dank!
by SoSci Survey (330k points)
Ach so, ich hatte es so verstanden, dass Sie auch innerhalb der von $pages definierten Seite noch PHP-Code verwenden. Ist das der Fall?

Wenn Sie auf dieser Seite sonst keine Inhalte haben, dann packen Sie diesen PHP-Code bitte einfach auf die vorhergehende Fragebogen-Seite.
by s087080 (110 points)
Ok, ich habe den PHP-Code jetzt auf die vorhergehende Seite gepackt. Folgendes Problem tritt aber immer noch auf: Seite 'AU' wiederholt sich nach der Nachhaken-Funktion.

> Ach so, ich hatte es so verstanden, dass Sie auch innerhalb der von $pages definierten Seite noch PHP-Code verwenden. Ist das der Fall?

Also ich verwende dort keinen selbst definierten PHP-Code. Es ist so, dass diese zwei Seiten (Seite 5+6) die ich innerhalb von $pages definiert habe zusätzlich an eine Filterfrage (Frage 12) gebunden sind. Wenn die zwei Bedingungen (Bedingung 1 erfüllt -> Seite 5 anzeigen + Bedingung 2 erfüllt -> Seite 6 anzeigen ) die in der Filterfrage definiert wurden angekreuzt werden, funktioniert der Fragebogen jetzt ohne Probleme. Wird jedoch nur eine Bedingung angekreuzt (also nur eine der Seiten soll angezeigt werden) oder keine Bedingung (also die Seiten sollen gar nicht angezeigt werden) erfüllt wird, dann wiederholt sich die Seite 'AU' nach der Nachhaken-Funktion.
by SoSci Survey (330k points)
> Wenn die zwei Bedingungen (Bedingung 1 erfüllt -> Seite 5 anzeigen + Bedingung 2 erfüllt -> Seite 6 anzeigen )

In Ordnung, das scheint tatsächlich das Problem mit den übersprungenen Seiten zu sein. Dieses kann voraussichtlich erst mit dem nächsten größeren Update behoben werden.

Vermutlich hilft es, wenn Sie anstatt den Filter direkt in der Frage zu formulieren, einen kleinen PHP-Filter zu Beginn der Seiten 5 und 6 setzen.

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

...