0 votes
in SoSci Survey (dt.) by s142491 (140 points)

Hallo zusammen,

ich benötige leider dringend Hilfe. Ich habe schon einige Sosci-Anleitungen gelesen, werde daraus aber leider nicht wirklich schlau. Ich habe einen Zufallsgenerator angelegt und hier 16 Zettel angelegt (ich mache ein Experiment mit 16 verschiedenen Ausprägungen). Es sollen im Fragebogen alle Ausprägungen angezeigt werden. Deshalb habe ich auch bei der Anzahl der Zettel pro Interview 16 angegeben. Als Zettelname habe ich jeweils die Kennung der angelegten Frage verwendet.
Hier habe ich schon mein erstes Problem, es wird bei der Anzeige nur die Fragekennung angezeigt. Beispiel: VN16 (die Fragen gehen von VN02 bis VN17). Wie kann ich programmieren, dass der Inhalt der jeweiligen VN-Frage angezeigt wird?


Ferner sollen im Anschluss mittels PHP-Code Seiten rotieren und einige wenige Seiten gleich bleiben. Hierfür habe ich folgenden PHP-Code erstellt:

question('VN01');
$pages = valueList('VN01', 'label');
array_splice($pages, 0, 0, 'ST');
array_splice($pages, 1, 0, 'Soziodemografika1');
array_splice($pages, 8, 0, 'ES02');
array_splice($pages, 13, 0, 'Soziodemografika2');
array_splice($pages, 18, 0, 'ES01');
setPageOrder($pages, 'end');

Anbei noch ein kurzer Screen des Fragebogens:

Ich weiß nicht, ob der Code so richtig ist und es nicht funktioniert, weil ich den Zufallsgenerator falsch angelegt habe oder ob ich bei beiden versagt habe.

Ich bedanke mich schon jetzt für die Hilfe !!

LG

by SoSci Survey (329k points)
>  Wie kann ich programmieren, dass der Inhalt der jeweiligen VN-Frage angezeigt wird?

Vermutlich haben Sie im Zufallsgenerator etwas für das Feld HTML-Code eingetragen. Entfernen Sie das, denn Sie wollen ja keine Bilder o.ä. anzeigen.

Anschließend posten Sie bitte die Debug-Information, die Ihnen für die Seite mit dem PHP-Code angezeigt wird: https://www.soscisurvey.de/help/doku.php/de:create:debugging

2 Answers

0 votes
by s142491 (140 points)

Ich habe den HTML-Code gelöscht.

Anbei noch die Screens von den Debug-Informationen auf Seite 1 des Fragebogens:

Anbei noch ein Screen der roten Fehlermeldung:

by SoSci Survey (329k points)
Leider ist der Screenshot zu klein, um die Deug-Information zu lesen. Könnten Sie das bitte nochmal per Copy&Paste hier einfügen? Danke.
by s142491 (140 points)
klar:
[Information]    Interview gestartet (neue Nummer 56)
[Information]    Der Fragebogen FRB im Projekt stellenausschreibungen2021 wird verwendet
[Verarbeitung]    Erstelle Seite 1 in Fragebogen FRB
[Inhalt]    Erstelle Frage VN01
[Information]    Vom Zufallsgenerator VN01 wurden folgende Codes gezogen: 14, 4, 8, 15, 9, 12, 1, 11, 13, 16, 2, 10, 3, 6, 7, 5
[Information]    Entsprechend setPageOrder() werden nun folgende Seiten gezeigt:
1 [ST], 6 [ES02], 11 [Soziodemografika2], 16 [ES01], Ω (end)
[Inhalt]    Zeige Text Einleitungstext
0 votes
by SoSci Survey (329k points)

Danke für die Übermittlung der Debug-Informationen.

Wie Sie sehen, ist die Liste der Seiten deutlich zu kurz ... von den ganzen gezogenen Seiten wird eigentlich nur eine verwendet. Auf den zweiten Blick sah' ich dann auch den Fehler:

$pages = valueList('VN01', 'label');

Bei valueList() wird der zweite Parameter immer (!) als Variablenliste interpretiert. label ist keine gültige Liste und liefert daher wohl keine Inhalte. Bitte ändern Sie das wie folgt:

$pages = valueList('VN01', NULL, 'label');

Weshalb sich valueList() nicht über den unpassenden Parameter beschwert, muss ich noch klären.

Weiterhin denke ich, dass hier noch ein Fehler (1) liegt:

array_splice($pages, 0, 0, 'ST');
array_splice($pages, 1, 0, 'Soziodemografika1');

Die erste Zeile füge zu Beginn des Arrays die Seite "ST" ein. Danach fügt die zweite Zeile nach dem ersten Element (welches ja nun "ST" ist) die Seite "Soziodemografika1" ein. Ich denke, dass Sie hier u.U. nicht bedacht haben, dass jedes array_splice() das Array bereits verändert. Vielleicht ist die folgende Schreibweise intuitiver:

$pages2 = array_merge(
  ['ST'],
  array_slice($page, 0, 1),
  ['Soziodemografika1'],
  array_slice($page, 1, 7),
  // u.s.w.
);

Dabei wird die Liste der zufällig rotierten Seiten quasi in Stückchen geschnitten und dann zwischen den festen Seiten eingefügt.

by s142491 (140 points)
Danke für die schnelle Rückmeldung. Ich habe den Code nun entsprechend angepasst, die Debug-Information lautet nun wie folgt: [Information]    Interview gestartet (neue Nummer 63)
[Information]    Der Fragebogen FRB im Projekt stellenausschreibungen2021 wird verwendet
[Verarbeitung]    Erstelle Seite 1 in Fragebogen FRB
[Inhalt]    Erstelle Frage VN01
[Information]    Vom Zufallsgenerator VN01 wurden folgende Codes gezogen: 16, 12, 5, 1, 2, 9, 15, 6, 8, 14, 13, 11, 3, 10, 4, 7
[Information]    Entsprechend setPageOrder() werden nun folgende Seiten gezeigt:
21 [VN17], 16 [VN13], 8 [VN06], 3 [VN02], 4 [VN03], 13 [VN10], 20 [VN16], 9 [VN07], 11 [VN09], 19 [VN15], 18 [VN14], 15 [VN12], 5 [VN04], 14 [VN11], 6 [VN05], 10 [VN08], Ω (end)
[Inhalt]    Zeige Text Einleitungstext

Jedoch werden die gewünschten Seiten nicht fest angezeigt (Im Test wird schon Soziodemografika nicht auf Seite 2 angezeigt).

Ferner erhalte ich im Test noch folgende Fehlermeldung:
Eine oder mehrere Variablen (VN01_CP, VN01x01, VN01x02, VN01x03, VN01x04, VN01x05, VN01x06, VN01x07, VN01x08, VN01x09, VN01x10, VN01x11, VN01x12, VN01x13, VN01x14, VN01x15, VN01x16) wurden bereits auf Seite 3 abgefragt. Bitte beachten Sie, dass die Antworten von Seite 3 hier angezeigt und anschließend überschrieben werden. Falls Sie eine gleichartige Frage mehrfach benötigen, erstellen Sie eine Kopie der Frage

Mache ich hier noch etwas falsch?
by SoSci Survey (329k points)
> Jedoch werden die gewünschten Seiten nicht fest angezeigt

Sie haben nicht verraten, wie ihr neuer Code aussieht, deshalb kann ich Ihnen im Moment wenig kontruktive Hinweise geben... Falls Sie mit array_merge() gearbeitet haben, haben Sie gesehen, dass ich der Variable, die Sie dort bekommen, einen neuen Namen ($pages2) gegeben habe?

> Eine oder mehrere Variablen (VN01_CP, VN01x01 ...

Sie haben den Zufallsgenerator offenbar auf mehreren Seiten eingebunden (in die Seite gezogen und/oder via question()). Nicht schlimm beim Zufallsgenerator, aber auch nicht notwendig.
by s142491 (140 points)
Entschuldigung, den Code habe ich folgendermaßen angepasst:
question('VN01');
$pages = valueList('VN01',NULL, 'label');
$pages2 = array_merge(['ST'],
array_slice($pages, 1, 0),
['Soziodemografika1'],
array_slice($pages, 8, 0, 'ES02'),
array_slice($pages, 13, 0, 'Soziodemografika2'),
array_slice($pages, 18, 0, 'ES01'));
setPageOrder($pages, 'end');

Nun klappt der Zufallsgenerator. Die festen Seiten werden jedoch nicht mehr angezeigt im Fragebogen.
by SoSci Survey (329k points)
> Die festen Seiten werden jedoch nicht mehr angezeigt im Fragebogen.

Die "Soziodemografika1" müsste noch funktionieren ... die anderen haben Sie aber bei array_slice() ergänzt, nicht zwischen den array_slice(), wo sie stehen müssten.
by s142491 (140 points)
Also, ich habe den Code nun wieder angepasst:

question('VN01');

$pages = valueList('VN01',NULL, 'label');

$pages2 = array_merge(
['ST'],
['Soziodemografika1'],
array_slice($pages, 2, 1),
array_slice($pages, 3, 1),
array_slice($pages, 4, 1),
array_slice($pages, 5, 1),
['ES02'],
array_slice($pages, 7, 4),
['Soziodemografika2'],
array_slice($pages, 12, 4),
['ES01'],
array_slice($pages, 17, 4)
);

setPageOrder($pages, 'end');

Ziel soll mit dem Code sein:
Zeige auf Seite 1 den Einleitungstext, auf Seite 2 Soziodemografika 2, dann 4 Seiten Zufallsgenerator, dann auf Seite 6 ES02. Anschließend wieder 4 Seiten Zufallsgenerator, dann wieder feste Seite Soziodemografika 2. Dann wieder 4 Seiten variabel und dann wieder eine Seite fest (ES01).

Jetzt kommt nur noch Anfangsseite und Endseite, also kompletter Müll.

Wenn ich setpageOrder auskommentiere werden mir leider nur noch die festen Seiten angezeigt, nicht aber mehr die variablen 16 Seiten zwischen den festen Seiten. Bin leider mit meinem Latein am Ende ..

Was genau stimmt mit meinem Code nicht? :(
by SoSci Survey (329k points)
> Jetzt kommt nur noch Anfangsseite und Endseite, also kompletter Müll.

Zeit zum Debuggen :)

Also zunächst einmal mein Hinweis von oben: Das was Sie da zusammenbauen wird in $pages2 gespeichert, nicht in $pages. Das müssen Sie also unten beim setPageOrder() anpassen.

Und dann fügen Sie zum besagten Debuggen bitte unter dem $pages = ... folgende Zeile ein:

debug($pages);

Und vor dem pageSetOrder() fügen Sie bitte ein:

debug($pages2);

Dann posten Sie bitte die Debug-Information.

Eine Kleinigkeit noch: Das mit array_slice() ist noch nicht ganz korrekt:

array_slice($pages, 2, 1),

Das würde die Seiten 3 aus der Zufallsfolge nehmen. Aber Sie wollen ja die ersten 4 Seiten, also verwenden Sie bitte:

array_slice($pages, 0, 1),

... für die erste Seite oder

array_slice($pages, 0, 4),

... um gleich die ersten 4 Seiten auf einmal zu bekommen.
by s142491 (140 points)
okay, ich habe den Code jetzt folgendermaßen angepasst:

question('VN01');

$pages = valueList('VN01',NULL, 'label');
debug($pages);

$pages2 = array_merge(
['ST'],
['Soziodemografika1'],
array_slice($pages, 0, 4),
['ES02'],
array_slice($pages, 4, 4),
['Soziodemografika2'],
array_slice($pages, 8, 4),
['ES01'],
array_slice($pages, 12, 4)
);

debug($pages2);
setPageOrder($pages2, 'end');

In der Testversion wird mir jetzt nur noch der Einleitungstext angezeigt. Anbei die Debug-Informationen:

[Information]    Interview gestartet (neue Nummer 104)
[Information]    Der Fragebogen FRB im Projekt stellenausschreibungen2021 wird verwendet
[Verarbeitung]    Erstelle Seite 1 in Fragebogen FRB
[Inhalt]    Erstelle Frage VN01
[Information]    Vom Zufallsgenerator VN01 wurden folgende Codes gezogen: 8, 15, 7, 6, 14, 16, 1, 9, 12, 13, 2, 4, 11, 10, 3, 5
debug()    Inhalt: VN01x01VN09, VN01x02VN16, VN01x03VN08, VN01x04VN07, VN01x05VN15, VN01x06VN17, VN01x07VN02, VN01x08VN10, VN01x09VN13, VN01x10VN14, VN01x11VN03, VN01x12VN05, VN01x13VN12, VN01x14VN11, VN01x15VN04, VN01x16VN06
debug()    Inhalt: 0ST, 1Soziodemografika1, VN01x01VN09, VN01x02VN16, VN01x03VN08, VN01x04VN07, 2ES02, VN01x05VN15, VN01x06VN17, VN01x07VN02, VN01x08VN10, 3Soziodemografika2, VN01x09VN13, VN01x10VN14, VN01x11VN03, VN01x12VN05, 4ES01, VN01x13VN12, VN01x14VN11, VN01x15VN04, VN01x16VN06
[Information]    Entsprechend setPageOrder() werden nun folgende Seiten gezeigt:
1 [ST], 2 [Soziodemografika1], 11 [VN09], 20 [VN16], 10 [VN08], 9 [VN07], 7 [ES02], 19 [VN15], 21 [VN17], 3 [VN02], 13 [VN10], 12 [Soziodemografika2], 16 [VN13], 18 [VN14], 4 [VN03], 6 [VN05], 17 [ES01], 15 [VN12], 14 [VN11], 5 [VN04], 8 [VN06], Ω (end)
[Inhalt]    Zeige Text Einleitungstext

Wenn ich SetpageOrder() entferne, erhalte ich zumindest die festen Seiten ohne den Zufallsgenerator.
by SoSci Survey (329k points)
> Entsprechend setPageOrder() werden nun folgende Seiten gezeigt

Das sieht doch soweit korrekt aus.Und wenn Sie dann auf "Weiter" klicken, welche Seite wird dann angezeigt? ST01 hoffe ich? Wobei das vermutlich wieder dieselbe Seite ist... denn laut der Anzeige ist ST die Seite 1, auf welcher der PHP-Code steht?!
by s142491 (140 points)
Tatsächlich erhalte ich nur noch die Seite 'ST', also die Einstiegsseite des Fragebogens. Auf dieser habe ich auch den PHP-Code eingebunden. Eine andere Seite wird nicht mehr angezeigt. Muss der Code woanders hin?
by SoSci Survey (329k points)
Wenn Sie schon auf der Seite ST sind, dann macht es wenig Sinn, dass Sie diese in setPageOrder() nochmal angeben. Denn so definieren Sie immer wieder aufs neue, dass Sie als nächstes die Seite ST sehen möchten.
by s142491 (140 points)
Okay, ich habe den Code nun entsprechend angepasst und ST aus dem Array Merge entnommen. Anschließend habe ich den Fragebogen erneut gestartet. Nun werden mir ausschließlich die festen Seiten angezeigt. Alle Seiten aus dem Zufallsgenerator fehlen. Ich füge mal die Debug-Informationen bei:

[Information]    Interview Nummer 107 wird fortgesetzt
[Information]    Der Fragebogen FRB im Projekt stellenausschreibungen2021 wird verwendet
[Information]    Die Verweildauer auf Seite 7 war 22 Sekunden
[Verarbeitung]    Lese Antworten von Seite 14+4+6+10+7
[Information]    Antwort auf A302_01 = 1
[Information]    Antwort auf A302_02 = 2
[Information]    Antwort auf A302_03 = 3
[Information]    Fragen bisher zu 100% vollständig beantwortet
[Information]    Entsprechend der vorher festgelegten Seitenabfolge wird Seite 18 [VN14] angezeigt
[Verarbeitung]    Erstelle Seite 18 in Fragebogen FRB
[Inhalt]    Erstelle Frage VN01
[Information]    Der Zufallsgenerator VN01 wurde bereits zu einem früheren Zeitpunkt im Interview verwendet, die gezogenen Codes bleiben unverändert: 10, 2, 4, 7, 13, 9, 12, 5, 15, 1, 3, 8, 16, 14, 6, 11
[Information]    Die Seite zeigt keine Inhalte, automatisch weiter mit Seite Nr. 13
[Verarbeitung]    Erstelle Seite 13 in Fragebogen FRB
[Inhalt]    Erstelle Frage VN01
[Information]    Der Zufallsgenerator VN01 wurde bereits zu einem früheren Zeitpunkt im Interview verwendet, die gezogenen Codes bleiben unverändert: 10, 2, 4, 7, 13, 9, 12, 5, 15, 1, 3, 8, 16, 14, 6, 11
[Information]    Die Seite zeigt keine Inhalte, automatisch weiter mit Seite Nr. 16
[Verarbeitung]    Erstelle Seite 16 in Fragebogen FRB
[Inhalt]    Erstelle Frage VN01
[Information]    Der Zufallsgenerator VN01 wurde bereits zu einem früheren Zeitpunkt im Interview verwendet, die gezogenen Codes bleiben unverändert: 10, 2, 4, 7, 13, 9, 12, 5, 15, 1, 3, 8, 16, 14, 6, 11
[Information]    Die Seite zeigt keine Inhalte, automatisch weiter mit Seite Nr. 8
[Verarbeitung]    Erstelle Seite 8 in Fragebogen FRB
[Inhalt]    Erstelle Frage VN01
[Information]    Der Zufallsgenerator VN01 wurde bereits zu einem früheren Zeitpunkt im Interview verwendet, die gezogenen Codes bleiben unverändert: 10, 2, 4, 7, 13, 9, 12, 5, 15, 1, 3, 8, 16, 14, 6, 11
[Information]    Die Seite zeigt keine Inhalte, automatisch weiter mit Seite Nr. 12
[Verarbeitung]    Erstelle Seite 12 in Fragebogen FRB
[Inhalt]    Erstelle Frage SD05
[Inhalt]    Erstelle Frage SD06
[Inhalt]    Erstelle Frage SD04
by SoSci Survey (329k points)
> [Verarbeitung]    Lese Antworten von Seite 14+4+6+10+7

Das sind alles Seiten, die im Zufallsggerator waren? Es scheint so, als würden diese Seiten alle keine Inhalte zeigen und würden deshalb nicht angezeigt. Was haben Sie denn auf Seite 14 und 4 an Inhalt?

Für eine genauere Antwort posten Sie gerne die Debug-Information, die angezeigt wird wenn Sie auf der Seite mit dem PHP-Code auf "Weiter" geklickt haben und von der Seite danach. Sie können auch gerne einen Pretest-Link mit Debug-Informationen erzeugen und hier posten, der auf dei Seite mit dem PHP-Code führt.
by s142491 (140 points)
Anbei der Pretest-Link: https://www.soscisurvey.de/stellenausschreibungen2021/index.php?i=E2SP3RYXQ6K0&rnd=ZZTA

Der PHP-Code ist auf Seite 1 eingebunden.


Auf Seite 14 und 4 ist jeweils der Zufallsgenerator eingebunden worden, wie auch auf alle anderen Seiten, die rotieren sollen. Also alle VN02-VN17.
by SoSci Survey (329k points)
> Auf Seite 14 und 4 ist jeweils der Zufallsgenerator eingebunden worden, wie auch auf alle anderen Seiten, die rotieren sollen

Bitte entfernen Sie den Zufallsgenerator von allen Seiten außer von der Seite mit dem PHP-Code.

> Anbei der Pretest-Link

Einen gültigen Pretest-Link können Sie wie folgt erstellen:
https://www.soscisurvey.de/help/doku.php/de:survey:pretest

Bitte wählen Sie dort die Vorschau mit Debug-Optionen und zum Starten die Seite mit dem obigen PHP-Code.
by s142491 (140 points)
Den Link hatte ich eigentlich genau so erstellt. Ich habe mal nochmal einen erstellt: https://www.soscisurvey.de/stellenausschreibungen2021/?act=t1lKvQXziNaU6BE14Kv5dWa1

Ich habe den Zufallsgenerator nun wie den PHP-Code auf Seite 1 (Einleitungstext) eingebunden und sonst entfernt. Es zeigt unverändert nur alle festen Seiten.
by SoSci Survey (329k points)
Wie bereits vermutet ... die Seitenabfolge funktioniert, aber die Seiten haben keinen Inhalt. Nach dem weitern Klick auf "Weiter" bekomme ich folgende Debug-Information:

[Information]    Entsprechend der vorher festgelegten Seitenabfolge wird Seite 20 [VN16] angezeigt
[Verarbeitung]    Erstelle Seite 20 in Fragebogen FRB
[Information]    Die Seite zeigt keine Inhalte, automatisch weiter mit Seite Nr. 21
[Verarbeitung]    Erstelle Seite 21 in Fragebogen FRB
[Information]    Die Seite zeigt keine Inhalte, automatisch weiter mit Seite Nr. 10
[Verarbeitung]    Erstelle Seite 10 in Fragebogen FRB
[Information]    Die Seite zeigt keine Inhalte, automatisch weiter mit Seite Nr. 19
[Verarbeitung]    Erstelle Seite 19 in Fragebogen FRB
[Information]    Die Seite zeigt keine Inhalte, automatisch weiter mit Seite Nr. 7

Deshalb nochmal meine Frage von oben: Was genau haben Sie auf Seite 20 platziert?
by s142491 (140 points)
Auf Seite 20 habe ich den Zufallsgenerator platziert gehabt. Nun hatte ich Ihn entfernt, da ich Ihn ja nur auf der Seite des PHP-Codes platzieren sollte.
Eigentlich soll auf allen Seiten ausgenommen 1,2,7,12,17 und 21 die Ausprägungen des Zufallsgenerators angezeigt werden. Soll ich diesen nun doch wieder auf eine andere Seite ziehen?

Also nochmal zusammengefasst sieht meine Fragebogenzusammenstellung derzeit so aus:
1. Seite: PHP-Code, Zufallsgenerator, Einleitungstext
Seite 2 enthält die Soziodemografika2-Fragen. Dann folgen 4 leere Seiten (Zufallsgenerator entnommen, hier sollen aber die VN-Fragen aus dem Generator rein), dann wieder fixe Fragen auf einer Slide, 4 leere Seiten usw.
by SoSci Survey (329k points)
> Eigentlich soll auf allen Seiten ausgenommen 1,2,7,12,17 und 21 die Ausprägungen des Zufallsgenerators angezeigt werden.

Um was für "Ausprägungen" geht es denn? Fragen? Texte? Ziehen Sie bitte die Fragen und/oder Texte auf die entsprechenden Seiten.

Wenn Sie Seiten rotieren, dann bitte Seiten mit Inhalt. Wenn Sie hingegen "nur" Stimuli rotieren wollten (in Ihrem Fall aufgrund der fixen Seite nur bedingt sinnvoll), hätten Sie mit loopPage() statt setPageOrder() arbeiten müssen - der Code sieht dann deutlich anders aus.

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

...