0 votes
in SoSci Survey (dt.) by s087669 (130 points)
edited by SoSci Survey

Hallo,

leider werden die Items beim Nachhaken fehlender Antworten erneut gemischt. Ich würde das gerne unterdrücken, damit der Fragebogen übersichtlicher wird. Ist das möglich? Hier mein Code:

$fragen = array('A104', 'A105');
$items = array();
foreach ($fragen as $frage) {
  // Items für jede einzelne Frage
  $itemsF = getItems($frage, 'all');
  foreach ($itemsF as $itemID) {
    $items[] = array($frage, $itemID);
  }
}
shuffle($items);
$blocks = array_chunk($items, 25);

$i = loopPage(count($blocks));

foreach ($blocks[$i] as $pos => $item) {
  $frage = $item[0];
  $itemID = $item[1];
  if ($pos == 0) {
    // Verankerung nicht deaktiviert beim ersten Item (=Index 0)
    question($frage, $itemID, 'spacing=3');
  } elseif ($pos == 24) {
    // Kein reduzierter Abstand beim 25-ten Item (=Index 24)
    question($frage, $itemID, 'anchor=none');
  } else {
    // Alles dazwischen ohne Verankerung und mit weniger Abstand nach unten (3 Pixel)
    question($frage, $itemID, 'spacing=3', 'anchor=none');
  }
}

Herzlichen Dank!

1 Answer

0 votes
by SoSci Survey (328k points)

Hierfür können Sie registerVariable() und isset() kombinieren:

if (!isset($blocks)) {
  $fragen = array('A104', 'A105');
  $items = array();
  foreach ($fragen as $frage) {
    // Items für jede einzelne Frage
    $itemsF = getItems($frage, 'all');
    foreach ($itemsF as $itemID) {
      $items[] = array($frage, $itemID);
    }
  }
  shuffle($items);
  $blocks = array_chunk($items, 25);
  registerVariable($blocks);
}

$i = loopPage(count($blocks));
// u.s.w.

So bleibt die Variable $blocks nach der ersten Definition unangetastet.

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

...