0 votes
in SoSci Survey (dt.) by s088332 (245 points)

Hallo liebes SoSci Survey Team,

in meiner Programmierung ist mir in der Testung eine Unstimmigkeit aufgefallen.

Auf einer Seite habe ich drei verschiedene Fragen über folgenden Code implementiert, um diese immer zu randomisieren:

   if (!isset($fragen)) {
  $fragen = array(  
    'VZ09',
    'VZ12',
    'VZ13'
  );
  shuffle($fragen);
  registerVariable('fragen');
  foreach ($fragen as $kennung) {
    question($kennung);
  }
}

Jetzt ist es so, dass diese drei Fragen beantwortet werden müssen. Klicke ich trotzdem auf "Weiter", passiert aber das hier:

Die Fragen VZ09, VZ12 und VZ13 werden nicht mehr angezeigt.

Lediglich der Text (VZ14) und die Fehlermeldung für den TN (nicht alles beantwortet) bleiben erhalten.

Letztlich können sich die Teilnehmer nun trotzdem durchklicken, obwohl es als Pflichtfrage intern eingestellt gewesen ist.

Anbei die Debug-Informationen:

Meine Frage: Was kann man nun machen, um dieses Problem zu lösen?

Vielen Dank und viele Grüße
Melanie Bender

1 Answer

0 votes
by SoSci Survey (302k points)
selected by s088332
 
Best answer

Mit der Zeile isset() überprüfen Sie - im Endeffekt - ob die Seite schonmal angezeigt wurde. Wenn ja, dann wird alles in der Klammer nicht mehr (!) ausgeführt. Also auch nicht bei der Wiederholung.

Die Lösung ist entsprechend einfach: Ziehen Sie die Anzeige der Fragen mittels question() hinter die letzte Klammer:

if (!isset($fragen)) {
  $fragen = array(  
    'VZ09',
    'VZ12',
    'VZ13'
  );
  shuffle($fragen);
  registerVariable($fragen);
}
foreach ($fragen as $kennung) {
  question($kennung);
}

Wenn die Fragen auf unterschiedlichen Seiten erscheinen sollen, dann verwenden Sie loopPage() statt foreach. Die Anwendung ist ein wenig anders und in der Anleitung dokumentiert.

by s088332 (245 points)
Vielen Dank für Ihre schnelle Antwort - wieder was gelernt und damit funktioniert es auch! Danke!

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

...