0 votes
in FAQs by s231114 (110 points)

Hallo!
Ich habe hier schon etwas nachgeforscht und einiges umsetzen können. Aber die Schattierung der Items bekomme ich nicht in die IF -Schleife implementiert. Mir gelingt entweder oder.

Hiermit gelingt mir die Schattierung. Aber siehe Folgecode wieiter unten:
if ($n % 2 == 0) {

question($item[0], [$item[1]], 'spacing=0', 'show-title=no', 'show-explanation=no', 'shading=all-shaded');

} else {

question($item[0], [$item[1]], 'spacing=0', 'show-title=no', 'show-explanation=no', 'shading=all-unshaded');

}

Das hier ist mein Code, so wie er eigentlich sein sollte, aber eben mit Schattierung für jedes zweite Item. Wie baue ich das in den Code ein?

if (!isset($itemBlocks)) {
  $questions = ['AS01', 'BS01'];
  // Liste mit allen Items erstellen
  $items = [];
  foreach ($questions as $qstID) {
    $qstItems = getItems($qstID, 'all');
    foreach ($qstItems as $itemID) {
      $items[] = [$qstID, $itemID];
    }
  }

  // Liste mischen
  shuffle($items);
 
  // Liste aufteilen
 $itemBlocks = array_chunk($items, 90);
  registerVariable($itemBlocks);

}
 
// Auf mehreren Seiten präsentieren
$i = loopPage(count($itemBlocks));
 
// Fragetext anzeigen
question('AS01', 'show-items=no','spacing=0');
 
// Items anzeigen
$items = $itemBlocks[$i];
//Vorspann des ersten Items soll angezeigt werden und NUR der!
$first = true;

foreach ($items as $item) {

 if ($first) {
   question($item[0], [$item[1]], 'spacing=0');
   $first = false;
  } else {
   question($item[0], [$item[1]], 'spacing=0', 'show-title=no', 'show-explanation=no', 'anchor=none');
  }
 }

Vielen lieben Dank für Ihre Hilfe!

by SoSci Survey (328k points)
Tipp: Mit dem Knopf {} können Sie Code in der Frage (vorher markieren) als solchen formatieren.

1 Answer

0 votes
by SoSci Survey (328k points)

Aus Sicht von SoSci Survey haben Sie hier nicht eine Frage mit mehreren Items, sondern viele Fragen mit jeweils einem Item. Entsprechend ist es immer das erste Item.

Mit der Option shading können Sie sich aber um die passende Schattierung kümmern.

$first = true;
$shade = true;

foreach ($items as $item) {
  if ($shade) {
    $shadeParam = 'shading=all-shaded';
  } else {
    $shadeParam = 'shading=all-unshaded';
  }
 if ($first) {
   question($item[0], [$item[1]], 'spacing=0', 'shading=all-shaded');
   $first = false;
  } else {
   question($item[0], [$item[1]], 'spacing=0', 'show-title=no', 'show-explanation=no', 'anchor=none', $shadeParam);
  }
  $shade = !$shade;
 }

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

...