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 Schwierigkeiten bei der Rotation von Seiten.
Zunächst sollen die ersten 10 Seiten in zufälliger Reihenfolge erscheinen, anschließend sollen 2 weitere Seiten in zufälliger Reihenfolge erscheinen und als letzte Seite kommen Fragen zum Alter etc.

Ich habe also auf der ersten Seite(Einleitung zum Fragebogen) folgendes getan:

if (!isset($pages1)) {
  $pages1= array('PA', 'PB', 'PC', 'PD', 'PE', 'PF', 'PG', 'PH', 'PI', 'PJ');
  shuffle($pages1);
  $pages1[] = 'PX';
  registerVariable($pages1);
}
setPageOrder($pages1);

Von Seite PA-PJ sollen also die Seiten in unterschiedlicher Reihenfolge erscheinen.

Auf Seite PJ habe ich folgendes eingefügt:

if (!isset($pages2)) {
  $pages2= array('PX', 'PY');
  shuffle($pages2);
  $pages2[] = 'PZ';
  registerVariable($pages2);
}
setPageOrder($pages2);

Seite PX und PY sollen in unterschiedlicher Reihenfolge erscheinen.

PZ ist die letzte Seite mit demographischen Fragen.

Es werden jedoch die Seiten durcheinander gemischt, also z.B. PA und dann kommt PX(aus meiner anderen Rotation), dann PE...
Außerdem erscheinen nicht alle Seiten und der Fragebogen ist unvollständig beendet.

Woran kann das liegen?

Danke im Voraus!

Liebe Grüße
Nina

in SoSci Survey (dt.) by s109570 (150 points)
edited by SoSci Survey

1 Answer

0 votes

Sie können stets nur einer Seitenabfolge folgen. Das heißt: Wenn Sie auf PJ (die ja an zufälliger Position kommt) eine neue Seitenabfolge definieren, dann wird die bisherige Seitenabfolge damit obsolet.

Meine Empfehlung wäre, dass Sie die komplette Abfolge zu beginn mischen und dann en block an setPageIOrder() übergeben:

if (!isset($pageSets)) {
  $pageSets = array(
    array('PA', 'PB', 'PC', 'PD', 'PE', 'PF', 'PG', 'PH', 'PI', 'PJ'),
    array('PX', 'PY')
  );
  for ($i=0; $i<count($pageSets); $i++) {
    shuffle($pageSets[$i]);
  }
  $pageSets[] = 'PEnde';
  registerVariable($pageSets);
}
setPageOrder(pageSets);

Ich bin nicht 100%ig sicher, ob setPageOrder() das verschachtelte Array ohne Murren annimmt. Falls nicht, bitte einfach nochmal kurz melden.

by SoSci Survey (79.5k points)
...