0 votes
in SoSci Survey (dt.) by s088878 (310 points)

Ich habe in meinem Fragebogen 4 Blöcke, deren Abfolge ich mischen will. Dh. nach der Einleitung sollen Blöcke (1-4) in unterschiedlicher Reihenfolge vorkommen, dann soll es auf Seite FQ0 weitergehen. Die jeweilige Reihenfolge, in der ein Teilnehmer die Blöcke sieht, soll bei der Datenerhebung auch abgespeichert werden. Dafür habe ich folgenden Code erstellt:

// Erst einmal die Seitenkennungen als Array speichern
$blocks = array(
  'Cond1' => array('C1in','C1p','C1ready','C1e1','C1d1','C1aem','C1d2','C1lcm','C1aed','C1d3','C1d4','C1e2','C1d5','C1aempd','C1lcd','C1d6','C1aemps','C1d7', 'C1done'),
  'Cond2' => array('C2in','C2p','C2ready','C2e1','C2d1','C2aem','C2d2','C2lcm','C2aed','C2d3','C2d4','C2e2','C2d5','C2aempd','C2lcd','C2d6','C2aemps','C2d7', 'C2done'),
  'Cond3' => array('C3in','C3p','C3ready','C3e1','C3d1','C3aem','C3d2','C3lcm','C3aed','C3d3','C3d4','C3e2','C3d5','C3aempd','C3lcd','C3d6','C3aemps','C3d7', 'C3done'),
  'Cond4' => array('C4in','C4p','C4ready','C4e1','C4d1','C4aem','C4d2','C4lcm','C4aed','C4d3','C4d4','C4e2','C4d5','C4aempd','C4lcd','C4d6','C4aemps','C4d7', 'C4done'));
// Jetzt noch die Reihenfolge der Blöcke zufällig mischen
shuffle($blocks);

for ($i=0; $i<count($blocks); $i++) {
  // Kennung der internen Variable aus Frage-Kennung plus Index erstellen
  $id = id('ZF05', $i + 1);
  // Hier den Wert aus dem Array speichern
  put($id, $blocks[$i][0]);
}

// Jetzt das Ergebnis noch als Seitenabfolge festlegen
// Weiter soll es anschließend mit Seite 'FQ0' gehen
setPageOrder($blocks, 'FQ0');

Ich habe mich mehrmals durch den Fragebogen geklickt um zu sehen ob das klappt. Allerdings wird mir manchmal nur ein Block angezeigt, manchmal nur 3, manchmal dann doch alle 4..., obwohl ich von ganz von Anfang mit dem Durchklicken beginne. Die Variable ZF05 zeigt mir bei 'Daten ansehen' immer eine (gemischte) Abfolge von 4 Blöcken an, auch wenn ganz offensichtlich 1 Block gefehlt hat. Wo kann der Fehler liegen?

1 Answer

0 votes
by SoSci Survey (327k points)

Steht der PHP-Code auf der Seite vor C1in?

Verwenden Sie irgendwo im Fragebogen (innerhalb der 4 Blöcke) goToPage() oder setNextPage() oder loopPage() oder loopToPage()?

Was zeigt die Debug-Information, vgl. Fragebogen-Probleme lösen?

Weshalb geben Sie in den Blöcken (die in sich ja nicht gemischt werden) die einzelnen Seiten an und nicht einfach 'C1in-C1done', 'C2in-C2done', u.s.w.?

by s088878 (310 points)
Hallo,
Ja, das sind sehr viele Testversionen dabei, aber "qnr7C5" war schon die richtige ;).

Oje, das hatte ich wohl übersehen. Allerdings bin ich mir jetzt nicht ganz sicher wie ich das hier rausnehmen soll, denn das ist nicht einfach nur ein 'Relikt' - ich brauche diese 4 setPageOrder(), weil ich hier items aus einer gezogenen Seitenabfolge herausnehme und rotieren lasse (siehe https://support.soscisurvey.de/?qa=4194/put-funktion-um-rotation-festzuhalten&show=4251#c4251). Bin mir also jetzt nicht ganz sicher, wie ich das Problem lösen soll :S.
by SoSci Survey (327k points)
Sie können nur eine aktive Seitenabfolge im Fragebogen verwenden - auf den ersten Blick war mein Eindruck, dass Sie das alles schon zu Beginn rotieren. Wenn nicht, dann müssten Sie einfach schon auf der ersten Seite dafür sorgen, dass sie den kompletten Ablauf durchrotieren, wie er sein soll.
by s088878 (310 points)
edited by s088878
Ah, ok, dh. ich würde sämtliche codes, dich ich erst auf den späteren Seiten verwende, auf die Seite geben, wo ich jetzt die Blöcke mische?

Mir ist noch immer nicht ganz klar, was ich dann mit den setPageOrder()s mache. Ich kann die doch nicht einfach rauslöschen??
by SoSci Survey (327k points)
Im Prinzip ja - und dann müssten Sie eine (!) gemeinsame Seitenabfolge festlegen, die sie dann an `setPageOrder()` übergeben. Details können wir gerne in einer neuen Frage hier im Online-Support klären :)
by s088878 (310 points)
Ok, done! Hoffe es ist im neuen Post noch nachvollziehbar!

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

...