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

+1 vote

Hallo,

ich habe einen Fragebogen mit 90 Fragen, die ich über 5 Seiten gleichverteilt darstellen möchte (also in 5 Blöcken zu je 18 Fragen). Dabei möchte ich die Reihenfolge aller 90 Items über die verschiedenen Seiten randomisieren.

Ich recherchiere dahingehend seit einiger Zeit, jedoch finde ich entweder Beschreibungen wie ich alle 90 Items auf einer Seite randomisiert darstellen könnte, oder Beschreibungen wie ich die 90 Items über eine Urne randomisiert jeweils einzeln nacheinander anzeigen könnte (über 90-maliges Neuladen der Seite).

Ist eine kombinierte Lösung möglich? Also das randomisieren aller 90 Items über zufällig zusammengesetzte Blöcke von je 18 Fragen über 5 Seiten?

Beste Grüße
Sebastian

in SoSci Survey (dt.) by s101002 (260 points)

1 Answer

+1 vote
 
Best answer

Wenn ich Sie korrekt verstehe, haben Sie 90 einzelne Fragen angelegt? Dann benötigen Sie erst einmal eine Liste dieser 90 Fragen:

$fragen = array(
  'AB01', 'AB02', 'AB03', 'AB04', ...,
  'BC01', 'BC02', 'BC03', 'BC04', ...,
);

Natürlich können Sie diese Liste auch einfach anhand der Rubriken erstellen:

$fragen = array_merge(
  getQuestions('AB'),
  getQuestions('BC'),
  // u.s.w.
);

Dann nur noch mischen und in Blöcke á 18 Kennungen aufteilen.

shuffle($fragen);
$order = array_chunk($fragen, 18);

Und das Ganze abarbeiten:

$i = loopPage(count($order));
foreach ($order[$i] as $qID) {
  question($qID);
}

Noch ein isset() und ein registerVariable() und fertig ist der Code:

if (!isset($order)) {
  $fragen = array_merge(
      getQuestions('AB'),
      getQuestions('BC'),
      // u.s.w.
  );
  shuffle($fragen);
  $order = array_chunk($fragen, 18);
  registerVariable($order);
}
$i = loopPage(count($order));
foreach ($order[$i] as $qID) {
  question($qID);
}

Das war es schon - Sie benötigen nur eine einzige Fragebogen-Seite mit diesem PHP-Code.

by SoSci Survey (84.7k points)
selected by s101002
...