0 votes
in SoSci Survey (dt.) by s063366 (110 points)

Hallo,

Szenario:
Auf Seite 3 eines Fragebogens ist ein php-code um einzelne Fragen auf dieser Seite rotieren zu lassen:

if (!isset($questions)) {
$questions = array('B002', 'B003', 'B004', 'B005', 'B007', 'B008', 'B009', 'B010');
shuffle($questions);
registerVariable('questions');
question($questions[0]);
question($questions[1]);
question($questions[2]);
question($questions[3]);
question($questions[4]);
question($questions[5]);
question($questions[6]);
question($questions[7]);}

Das funktioniert super. Aber hier wird irgendwie ignoriert, dass für jede Frage eigentlich ein "Antwortzwang" eingestellt wurde. D.h. bei nicht-beantworten einer, mehrerer oder aller Fragen dieser Seite, kommt zwar die Meldung, dass Fragen beantwortet werden müssen, aber die Fragen erscheinen nicht mehr (egal ob beantwortet oder nicht beantwortet). Wenn man dann auf den Weiter-Button drückt, kommen die nachfolgenden Fragen.

Wie muss man hier vorgehen?
Vielen Dank schon mal für die Hilfe und beste Grüße
Sara

1 Answer

0 votes
by SoSci Survey (302k points)

Die Klammern sind nicht ganz korrekt. Das isset() sollte eigentlich dafür sorgen, dass die Rotation nur einmal durchgeführt wird. Dadurch, dass Sie die geschweifte Klammern ganz and Ende stellen, sorgt es aber dafür, dass auch die Fragen nicht mehr angezeigt werden. Korrekt wäre:

if (!isset($questions)) {
  $questions = array('B002', 'B003', 'B004', 'B005', 'B007', 'B008', 'B009', 'B010');
  shuffle($questions);
  registerVariable('questions');
}
question($questions[0]);
question($questions[1]);
question($questions[2]);
question($questions[3]);
question($questions[4]);
question($questions[5]);
question($questions[6]);
question($questions[7]);

Oder noch etwas eleganter:

if (!isset($questions)) {
  $questions = array('B002', 'B003', 'B004', 'B005', 'B007', 'B008', 'B009', 'B010');
  shuffle($questions);
  registerVariable('questions');
}
foreach ($questions as $question) {
  question($question);
}

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

...