0 votes
in SoSci Survey (dt.) by s126455 (115 points)

Guten Tag zusammen!

Für einen Fragebogen würde ich gerne die Items von 3 Fragen "zusammenmischen" und zufällig auf mehrere Seiten verteilt darstellen. Die Fragen haben unterschiedlich viele Items.

Hier auf der Support-Seite habe ich folgende Lösung gefunden:

if (!isset($allItems)) {
  // Eine Liste aller Items in der Form Frage-Item erstellen
  $questions = array('C201', 'C202', 'C203');
  $allItems = array();
  foreach ($questions as $question) {
    foreach (getItems($question) as $item) {
      $allItems[] = array($question, $item);
    }
  }
  // Mischen und die Reihenfolge merken
  shuffle($allItems);
  registerVariable($allItems);
}
$i = loopPage(count($allItems));
$item = $allItems[$i];
question($item[0], $item[1]);

Diese funktioniert soweit, allerdings wird dann auf jeder Seite immer nur ein Item angezeigt, und ich kenne mich mit leider PHP nicht gut genug aus um diese Vorgehensweise so anzupassen, dass z.B. immer 20 Items pro Seite angezeigt würden.

Vielen Dank für mögliche Vorschläge und viele Grüße!

1 Answer

+1 vote
by SoSci Survey (326k points)

Für Ihre Anwendung ist es vermutlich sinnvoller, kein loopPage() zu verwenden, sondern den unteren Teil des Codes (also nach der geschweiften Klammer) auf 3 Seiten mit einer kleinen Variation zu platzieren. Dieser Code würde dann so aussehen:

for ($i=0; $i<8; $i++) {
  $item = $allItems[$i];
  question($item[0], $item[1]);
}

Und die Variation für die nächste Seite ändert einfach den Zählbereich:

for ($i=8; $i<16; $i++) {
  $item = $allItems[$i];
  question($item[0], $item[1]);
}

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

...