0 votes
in SoSci Survey (dt.) by s109850 (245 points)
edited by s109850

S.g. Support-Team,

ich habe in meinem Befragungsprojekt unterschiedliche Fragebögen erstellt. Diese habe ich nun zu einer gesamten Studie als neuen Gesamtfragebogen zusammengefügt - durch hineinziehen.
Nun möchte ich die einzelnen Fragebogenblöcke im Gesamtfragebogen in randomisierter Reihenfolge anzeigen. Der Gesamtfragebogen besteht aus 2 Teilen = Behavioral Tasks (3) + Questionnaires (5) --> diese Reihenfolge soll nicht geändert werden. Folglich sollen im ersten Teil die 3 Behavioral Tasks randomisiert werden sowie anschließend im zweiten Teil die 5 Questionnaires.

Da sich drei der eingefügten Fragebögen (1 Behvioral Task + 2 Questionnaires) je nach Geschlecht und sexueller Orientierung (männlich/heterosexuell/homosexuell oder weiblich/heterosexuell/homosexuell) unterscheiden, habe ich Filterfragen gesetzt Bsp. Wenn "weiblich und heterosexuell" in der entsprechenden Frage ausgewählt wird, dann sollen Seite(n) im Fragebogen ausgeblendet werden.). Dies funktioniert soweit nur im ersten Teil des Gesamtfragebogens.

Für die Randomisierung im Gesamtfragebogen habe ich Arrays erstellt und shuffle() verwendet (PHP-Codes auf S. 2 + S. 149 im Gesamtfragebogen). Jedoch klappt der Durchlauf nicht wie gewünscht. Im ersten Teil macht vor allem der Fragebogenblock auf den S. 55-148 Probleme (Einzelner Fragebogenblock: https://www.soscisurvey.de/test155917/?act=jliQtgsvmeA95yWFxK57HfJD) - dieser beinhaltet selbst eine Randomisierung - er leitet sofort zum zweiten Teil im Gesamtfragebogen weiter.

Debug-Information NEU:

[Information]	Interview Nummer 710 wird fortgesetzt
[Information]	Der Fragebogen Studie_Final im Projekt test155917 wird verwendet
[Information]	Die Verweildauer auf Seite 91 betrug zusätzliche 6 Sekunden
[Verarbeitung]	Lese Antworten von Seite 91
[Information]	Keine Antwort für H149
[Information]	Fragen bisher zu 12% vollständig beantwortet
[Information]	Entsprechend der vorher festgelegten Seitenabfolge wird Seite 148 [X] angezeigt
[Verarbeitung]	Erstelle Fragebogen-Seite Nr. 148
[Information]	Die Seite zeigt keine Inhalte, automatisch weiter mit Seite Nr. 149
[Verarbeitung]	Erstelle Fragebogen-Seite Nr. 149
[Information]	Die interne Variable I116_01 wird mit dem Wert 1 belegt.
[Warnung]	Der Wert von Variable I116_01 wurde geändert
[Information]	Die interne Variable I116_02 wird mit dem Wert 4 belegt.
[Warnung]	Der Wert von Variable I116_02 wurde geändert
[Information]	Die interne Variable I116_03 wird mit dem Wert 2 belegt.
[Warnung]	Der Wert von Variable I116_03 wurde geändert
[Information]	Die interne Variable I116_04 wird mit dem Wert 9 belegt.
[Warnung]	Der Wert von Variable I116_04 wurde geändert
[Information]	Die interne Variable I116_05 wird mit dem Wert 7 belegt.
[Warnung]	Der Wert von Variable I116_05 wurde geändert
[Information]	Die interne Variable I116_06 wird mit dem Wert 3 belegt.
[Warnung]	Der Wert von Variable I116_06 wurde geändert
[Information]	Die interne Variable I116_07 wird mit dem Wert 5 belegt.
[Warnung]	Der Wert von Variable I116_07 wurde geändert
[Information]	Die interne Variable I116_08 wird mit dem Wert 8 belegt.
[Warnung]	Der Wert von Variable I116_08 wurde geändert
[Information]	Die interne Variable I116_09 wird mit dem Wert 6 belegt.
[Information]	Entsprechend setPageOrder() werden nun folgende Seiten gezeigt:
150 [F101], 162 [A201], 163, 164, 165, 166, 167, 168, 169, 170, 171, 172 [A211], 196 [B101], 151 [A101], 152, 153, 154, 155, 156, 157, 158, 159, 160, 161 [A111], 195 [B201], 198 [D101], 184 [A401], 185, 186, 187, 188, 189, 190, 191, 192, 193, 194 [A411], 197 [C101], 173 [A301], 174, 175, 176, 177, 178, 179, 180, 181, 182, 183 [A311], 199 [Xende]
[Information]	Die Seite zeigt keine Inhalte, automatisch weiter mit Seite Nr. 150
[Verarbeitung]	Erstelle Fragebogen-Seite Nr. 150
[Inhalt]	Erstelle Frage E102
[Inhalt]	Erstelle Frage E101


Gesamtfragebogen:
https://www.soscisurvey.de/test155917/?act=rUFK9KoMPVVl7ZnZt5C4NxPd

by SoSci Survey (303k points)
Für eine konrkete Antwort müsste ich Sie bitten, in Ihrer Frage die Debug-Information (https://www.soscisurvey.de/help/doku.php/de:create:debugging) zu ergänzen, die an den Stellen angezeigt wird, wo es nicht korrekt funktioniert. Also z.B. beim "er leitet sofort zum zweiten Teil im Gesamtfragebogen weiter". Danke.
by s109850 (245 points)
Ich habe die Informationen in der Frage ergänzt.
by SoSci Survey (303k points)
Danke für die Ergänzung der Debug-Informationen. Die Seitenabfolge, die im ersten Tei der Debug-Informationen angegeben ist, ist noch korrekt?

> er leitet sofort zum zweiten Teil im Gesamtfragebogen weiter.

Ab welcher Seite beginnt denn der "zweite Teil" und welche Seite sollte eigentlich gezeigt werden?

Im zweiten Teil der Infos sehe ich, dass durch einen Filter in Frage I103 viele Seiten übersprungen werden. Dies ist so beabsichtigt?
by s109850 (245 points)
Der "erste Teil" des Gesamtfragebogens (bestehend aus 3 unterschiedlichen Fragebogenblöcken, wobei einer 2 Versionen aufweist - folglich 4 Blöcke) erstreckt sich über die Seiten 3 bis 148.

Der randomisierte Ablauf sowie auch die Filterfrage (Ausblenden einer der 2 Versionen) funktioniert, sobald der Fragebogen auf Seite 55-148 am Ende angezeigt wird. Tritt dieser jedoch an erster oder zweiter Stelle auf, werden die anderen beiden Blöcke nicht mehr angezeigt und der "zweite Teil" des Gesamtfragebogens startet.

Der "zweite Teil" beginnt mit der Seite 149, wobei diese nur den PHP-Code für die Randomisierung der weiteren Blöcke enthält. Hier hatte ich die Internen Variablen aus dem "ersten Teil" übernommen - das habe ich nun korrigiert und neue erstellt - der Ablauf + Filterfrage funktioniert nun!  

Der "zweite Teil" beinhaltet 5 unterschiedliche Fragebogenblöcke (wobei einer der Fragebögen 4 unterschiedliche Versionen - daher werden auch so viele Seiten mit dem Filter in der Frage I103 übersprungen - und ein weiterer 2 unterschiedliche Versionen aufweist).

Folglich habe ich nur noch das geschilderte Problem im "ersten Teil". Dazu die Debug-Information vom neuen Durchlauf siehe oben in der Frage.

1 Answer

0 votes
by SoSci Survey (303k points)

Danke für die ergänzenden Informationen. Ich denke, ich sehe das Problem:

Sie schreiben, dass er "erste Teil" bis Seite 148 geht. In der aktuell in Ihrer Frage enthalteten Debug-Information sehe ich nicht, welche Seitenabfolge zu diesem Zeitpunkt eingestellt ist - aber nachdem Seite 148 keinen sichtbaren Inhalt zeigt (s. Debug-Information), springt SoSci Survey weiter zur Seite 149.

Wenn das korrekt ist, gut. Wenn nicht, dann stimmt vorher mit der Seitenabfolge etwas nicht. Dafür müssten Sie bitte im Debug-Modus (oben bei den Seiten) einmal verfolgen, welche Seitenabfolge zu Beginn des ersten Teils festgelegt wird und was dort rund um die Seite 148/149 steht. Auch müssten Sie verfolgen, ob die Seitenabfolge zwischenzeitlich nochmal geändert wird. Vorsicht: setPageOrder() lässt sich nicht mit loopPage(), loopToPage() oder setNextPage() kombinieren - alle diese Funktionen beeinden die vorher festgelegte Seitenabfolge.

Sobald der Fragebogen auf Seite 149 ist, wird eine neue Seitenabfolge festgelegt. Ab hier kann es also nur nach vorne weitergehen...

by s109850 (245 points)
Der Code funktioniert - nur ist eben in diesem Teil 1, welcher mit setPageOrder() versehen ist, ein Fragebogenblock, der ebenfalls setPageOrder() enthält. Nun muss ich in einem der beiden Codes (die ich zuletzt in meinen Kommentaren geposted habe) setPageOrder() ersetzen, damit der Durchlauf funktioniert - ich weiß jedoch nicht wie :/
by SoSci Survey (303k points)
> nur ist eben in diesem Teil 1, welcher mit setPageOrder() versehen ist, ein Fragebogenblock, der ebenfalls setPageOrder() enthält.

Puh - dann habe ich das Grundproblem doch richtig verstanden :)

Aber das bekommen wir hin. Es geht um den Block 'H101start-H193ende', ist das korrekt?

Machen Sie bitte folgendes: Nehmen Sie den Rotations-Code für H (von oben) und stellen Sie Ihn direkt (ind gleiche PHP-Code Element) vor den anderen Code.

Der lange Rotations-Code speichert die Rotation in die Variable $rotation. Nun ersetzen Sie die Zeile

'H1' => 'H101start-H193ende'

durch

'H1' => $rotatation

Dann wird das nicht als Block verwendet, sondern die einzelnen Seiten werden spezifiziert. An der späteren Stelle fällt der PHP-Code dann natürlich komplett raus.
by s109850 (245 points)
Der Durchlauf klappt - DANKE :) Nur ein kleines Problem bleibt noch. Im Block 'H101start-H193ende' handelt es sich bei den ersten Seiten (H101start-H104) um Instruktionsseiten. Auf der Seite H105 befindet sich der PHP-Code. Im Gesamtdurchlauf werden die Instruktionsseiten nicht angezeigt, da ich diese nicht in den PHP-Code mithineingenommen habe.
by SoSci Survey (303k points)
Na, das ist einfach... Versuchen Sie es bitte erstmal hiermit:

'H1' => array('H101start-H104', $rotatation)

und wenn das nicht funktioniert, dann

'H1' => array_merge(array('H101start-H104'), $rotatation)
by s109850 (245 points)
Funktioniert! Vielen lieben Dank :)

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

...