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

0 votes

Hallo,

ich habe einen Fragebogen, bestehend aus vier Blöcken (A, B, C, D) und möchte die Blöcke als ganzes randomisieren. Die Randomisierung funktioniert nicht. Es werden nicht alle Blöcke präsentiert und die Seiten innerhalb eines Blockes bleiben auch nicht gleich. Ich habe folgenden Code verwendet:

// Erst einmal die Seitenkennungen als Array speichern
$rotation = array(
  'A' => array('A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11','A12','A13','A14','A15','A16','A17','A18','A19','A20','A21','A22','A23'),
  'B' => array('B1','B2','B3','B4','B5','B6','B7','B8','B9','B10','B11','B12','B13','B14','B15','B16','B17','B18','B19','B20','B21','B22','B23'),
  'C' => array('C1','C2','C3','C4','C5','C6','C7','C8','C9','C10','C11','C12','C13','C14','C15','C16','C17','C18','C19','C20','C21','C22','C23'),
  'D' => array('D1','D2','D3','D4','D5','D6','D7','D8','D9','D10','D11','D12','D13','D14','D15','D16','D17','D18','D19','D20','D21','D22','D23'),
);

// Reihenfolge der Blöcke zufällig mischen
shuffle($rotation);

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

Ich habe schon verschiedene Beiträge angeschaut, aber komme zu keiner richtigen Lösung.

in SoSci Survey (dt.) by s064504 (185 points)
edited by s064504

1 Answer

0 votes

Es werden nicht alle Blöcke präsentiert und die Seiten innerhalb eines Blockes bleiben auch nicht gleich.

Ich habe zwei Vermutungen. Zum einen: Steht der PHP-Code auf der Seite vor A1? Es ist wichtig, dass der Code im Laufe der Seiten nicht erneut aufgerufen wird?

Und zum zweiten: Verwenden Sie irgendwo in Ihrem Fragebogen die Funktionen setNextPage(), setPageOrder(), loopPage, loopToPage() oder goToPage()? Diese Befehle können eine laufende Seitenabfolge beenden.

Sie können übrigens die Blöcke auch knapper definieren:

$rotation = array(
  'A' => 'A1-A23',
  'B' => 'B1-B23',
  'C' => 'C1-C23',
  'D' => 'D1-D23'
);
by SoSci Survey (101k points)
Vielen Dankd für die Antwort. Tatsächlich war noch ein setPageOrder() auf einer anderen Seite. Aber ich habe es nun entfernt und der PHP Code startet auch vor A1 trotzdem funktioniert die Randomisierung nicht.
Mein Code sieht wie folgt aus:

// Erst einmal die Seitenkennungen als Array speichern
$rotation = array( 'A' => 'A1-A23', 'B' => 'B1-B23', 'C' => 'C1-C23', 'D' => 'D1-D23' );

// Jetzt noch die Reihenfolge der Blöcke zufällig mischen
shuffle($rotation);

// Jetzt das Ergebnis noch als Seitenabfolge festlegen
// Weiter soll es anschließend mit Seite 'ende' gehen
setPageOrder($rotation, 'ende');
Was zeigt denn die Debug-Information auf dieser und der folgenden Seite?
https://www.soscisurvey.de/help/doku.php/de:create:debugging
...