0 votes
in SoSci Survey (dt.) by s122410 (375 points)

Hallo,

ich habe 6 Fragen auf 6 verschiedenen Seiten, deren Reihenfolge rotieren muss. Das heißt, im Grunde muss die Reihenfolge der 6 Seiten rotieren. Konkret geht es um die Fragen, die hier von Seite 7 bis 12 erscheinen: https://www.soscisurvey.de/sensingeurope/?act=WCk8BVyvnT5hx10itDAijhG3

Ich hatte diese Rotation programmiert, indem ich am Ende von Seite 6 (also die Seite, die vor der Seite kommt, wo die Rotation beginnen muss) folgenden PHP-Code eingefügt habe:

if (!isset($seiten)) {
// Liste der Seiten definieren
$seiten = array('BT01','BT02','BT03','BT04','BT05','BT06');
// Liste mischen
shuffle($seiten);
// Die Seite ergänzen, wo es nachher weiter geht
$seiten[] = 'GO';
// Reihenfolge zwischenspeichern, um spätere Änderung zu vermeiden
registerVariable($seiten);
}
setPageOrder($seiten);

Das hat einwandfrei funktioniert.

Ich möchte jetzt aber zusätzlich, dass auch die Items der Fragen rotieren. Sie müssen aber parallel rotieren, also so, dass alle 6 Fragen dieselbe rotierte Item-Abfolge verwenden. Das habe ich nach Ihrer Anleitung mit dem folgenden Code auf der ersten Seite realisiert:

if (!isset($itemsAB)) {
$itemsAB = getItems('CC07', 'all');
shuffle($itemsAB);
registerVariable($itemsAB);
}
question('CC07', $itemsAB);

und mit dem folgenden Code auf den Folgeseiten (mit jeweils 'CC08', 'CC09'...):

question('CC08', $itemsAB);

Wenn ich das mit der Fragebogen-Vorschau teste (sowohl unter "Fragebogen zusammenstellen" als auch durch den oben angegebenen Pretest-Link), funktioniert die Rotation der Items sehr gut, aber die Rotation der Fragen/Seiten dafür leider nicht mehr.

Sind die 2 Rotationen, so wie ich sie programmiert habe, nicht "miteinander kompatibel"?
Kann man dieses Problem irgendwie beheben?

Vielen Dank im Voraus für die Hilfe.

Liebe Grüße,
Alessandra

1 Answer

0 votes
by SoSci Survey (302k points)

funktioniert die Rotation der Items sehr gut, aber die Rotation der Fragen/Seiten dafür leider nicht mehr.

Seltsam ... eigentlich dürften sich die beiden Rotation nicht in die Quere kommen.

Ich würde empfehlen, dass Sie die beiden PHP-Code für die Rotation auf dieselbe Seite (6) packen. Außer natürlich, wenn die Item-Abfolge schon früher im Fragebogen benötigt wird.

Meine Vermutung wäre, dass der PHP-Code für die Seiten-Rotation nicht mehr korrekt zum EInsatz kommt. Bitte prüfen (und posten) Sie einmal die Debug-Information auf Seite 6. Die Variable $seiten verwenden Sie sonst nirgends im Fragebogen, oder?

by s122410 (375 points)
Die Variable $seiten verwende ich sonst nirgends, genau.

Wenn der PHP-Code für die Rotation auf der Seite 5 steht (das ist die Seite, die vor den 6 Seiten kommt, die rotieren müssen), sehen die Debug-Informationen so aus:

Seite 5 - https://ibb.co/R6x3P0F
Seite 6 - https://ibb.co/n8c6Mhb

Wenn der PHP-Code für die Rotation auf derselben Seite steht, wo die Rotation beginnen soll (Seite 6), sehen die Debug-Informationen so aus:

Seite 6 - https://ibb.co/8xgtN8B
Seite 7 - https://ibb.co/yfZVpJr

Wenn ich das gut verstehe, in diesem zweiten Fall rotieren die Seiten 7 bis 11 schon, aber die Seite 6 kommt immer als erste dran. Wenn man den PHP-Code für die Rotation aber auf Seite 5 platziert, wird ja einen Fehler angezeigt ("The PHP variable $itemsAB has been used but the variable is yet undefined"). Allerdings ersheint dieser z.B. nicht, wenn man die Vorschau durch einen Pretest-Link öffnet (er startet bei Seite 5): https://www.soscisurvey.de/sensingeurope/?act=RtiGdd7PxU4YdwHUtsMlUIt6
by SoSci Survey (302k points)
> Wenn der PHP-Code für die Rotation auf der Seite 5 steht (das ist die Seite, die vor den 6 Seiten kommt, die rotieren müssen), sehen die Debug-Informationen so aus:

Das sollte soweit korrekt sein. Die Frage ist: Wie sieht die Debug-Information aus, wenn Sie ab der Seite starten wo die Items rotiert werden - und dann bis zur Seite 5/6 durchklicken?
by SoSci Survey (302k points)
Ah - so langsam verstehe ich. Sie haben den Code für die Items nach (!) dem Code für die Seiten-Rotation?

Zumindest verstehe ich das so, weil Sie hier bei den Screenshots auf Seite 6 starten. In dem Fall packen Sie bitte den Code für $itemsAB gemeinsam mit dem Code für setPageOrder() auf Seite 5 und starten Sie den Test auch ab dort.
by s122410 (375 points)
Ja genau, ich hatte den Code für die Items nach dem Code für die Seiten-Rotation. So, ich habe das jetzt geändert und habe jetzt auf Seite 5 diesen Code stehen:

if (!isset($seiten)) {
  // Liste der Seiten definieren
  $seiten = array('BT01','BT02','BT03','BT04','BT05','BT06');
  // Liste mischen
  shuffle($seiten);
  // Die Seite ergänzen, wo es nachher weiter geht
  $seiten[] = 'GO';
  // Reihenfolge zwischenspeichern, um spätere Änderung zu vermeiden
  registerVariable($seiten);
}
setPageOrder($seiten);

if (!isset($itemsAB)) {
  $itemsAB = getItems('CC07', 'all');
  shuffle($itemsAB);
  registerVariable($itemsAB);
}

und das hat tatsächlich das Problem gelöst.
Jetzt scheint alles zu funktionieren, ich freue mich!

Vielen Dank :)

Liebe Grüße,
Alessandra

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

...