0 votes
in SoSci Survey (dt.) by s363901 (120 points)

Hallo, ich habe für meinen Fragebogen einen Rubrik mit 37 Fragen + einen Zufallsgenerator damit die Fragen rotieren. Jetzt habe ich mit den vorgegebenen PHP Codes nur die Möglichkeit entweder alle Fragen auf eine Seite zu tun oder jeweils eine Frage auf eine Seite. Ich hätte aber gerne 3-4 Fragen auf einer Seite. Wie kann ich das machen? Es sollen trotzdem alle Fragen aus der Rubrik mit 37 Fragen rotieren und jede Frage muss von jedem beantwortet werden.

1 Answer

0 votes
by SoSci Survey (373k points)

Bitte werfen Sie mal einen Blick in die Anleitung Rotation von Items über mehrere Seiten. Im Prinzip können Sie diesen PHP-Code in leicht abgewandelter Form auch verwenden, um eine Liste von Fragen zu mischen, diese Liste mittels array_chunk() in Blöcke von 3 oder 4 Fragen aufzuteilen, und diese dann jeweils zusamen auf einer Seite anzuzeigen.

Details gerne auf Nachfrage.

by s363901 (120 points)
Mhh das funktioniert nicht: Warnung: Die Anzahl öffnender Klammern (8) und schließender Klammern (7) stimmt hier nicht überein:
$blocks[2] = array_merge(
  $blocks[2],
  $last
];

Warnung: Die Funktion array_array_pop() ist nicht bekannt.

Muss ich noch was beachten?
by SoSci Survey (373k points)
Ja, es sollte in der tat ein wenig anders aussehen:

$last = array_pop($blocks);
$blocks[2] = array_merge(
  $blocks[2],
  $last
);
by s363901 (120 points)
Also falls somit auf der letzen Seite 5 Fragen stehen sollte, klappt es immer noch nicht:/
Muss ich den Code auf eine bestimmte Weise anwenden oder noch etwas ändern?
by SoSci Survey (373k points)
Wenn Sie diesen Code unterhalb von dem debug($blocks) - siehe Beispiel oben - einfügen und darunter noch mal debug($blocks) platzieren, was wird denn dann angezeigt? Gesamt wäre der obere Teil vor der Anzeige also...

$fragen = valueList('RG01', null, 'label');
debug($fragen);
$blocks = array_chunk($fragen, 4);
debug($blocks);
$last = array_pop($blocks);
$blocks[2] = array_merge(
  $blocks[2],
  $last
);
debug($blocks);

... und dann die Anzeige via loopPage() u.s.w.
by s363901 (120 points)
Das hat jetzt geklappt :)
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

...