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

Sehr geehrte Damen und Herren, hiermit würde ich gerne meine Frage in Bezug auf folgendes Problem einreichen und zwar: wie stelle ich die Prüfung auf Antwort im folgenden Beispiel ein? Da sind mehrere Mehrfachauswahlfragen kombiniert und es ist wichtig, dass zu allen Personen Angaben gemacht werden. Wenn eine Person übersprungen wird, gibt es keine Meldung. Könnte jmd helfen?

Danke sehr im Voraus,
Anna

in SoSci Survey (dt.) by s096993 (125 points)

1 Answer

+1 vote

Hier ist eine individuelle Antwortprüfung erforderlich.

Konkret benötigen Sie einen PHP-Code, der für jedes Item prüft, ob min. ein Kreuzchen gesetzt wurde.

$missing = [];
foreach (getItems('SN03', 'all') as $item) {
  $any = false;
  foreach (array('SN03', 'SN04', 'SN05', 'SN06', 'SN07') as $question) {
    if (value(id($question, $item)) == 2) {
      $any = true;  // Min. ein Kreuzchen gesetzt
    }
  }
  if (!$any) {
    $missing[] = $item;
  }
}

if (count($missing) > 0) {
  foreach ($missing as $item) {
    markFail(id('SN03', $item));
  }
  repeatPage();
}

Zugegene, das ist aufgrund der beiden verschachtelten FOREACH-Schleifen nicht ganz einfach zu lesen. Die obere Hälfte des Codes geht alle Items (und für jedes Item alle Fragen) durch und prüft, ob irgendwo ein Kreuzchen ist. Wenn ein Item kein Kreuzchen hat, wird es im Array $missing vermerkt.

Der untere Teil prüft, ob fehlender Items vermerkt wurden und markiert diese als fehlend.

by SoSci Survey (53k points)
Fehlermeldung bei PHP-Code.
...