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

Sehr geehrte Damen und Herren,
Ich habe eine Studie erstellt mit Zufallsgenerator, bei der vier verschiedene Rubriken vorkommen. Während allerdings drei davon nur eine Frage enthalten, hat eine Rubrik viele Einzelfragen. Bei der Randomisierung habe ich jetzt das Problem, dass wenn per Zufallsgenerator die Rubrik mit vielen Einzelfragen ausgewählt wird, alle Fragen auf einer Seite sind und sich nicht mit dem "array_chunk()"- Befehl auf mehrere Seiten aufteilen lassen.
Können Sie mir da weiterhelfen?

Vielen Dank
Mit freundlichen Grüßen

by SoSci Survey (327k points)
Wählen Sie mittels Zufallsgenerator nur eine Rubrik oder mehrere? Welchen PHP-Code verwenden Sie denn aktuell, sodass ein Code mit array_chunk() nicht das gewünschte Ergebnis liefert?
by s204488 (120 points)
Ich habe 2 verschiedene Zufallsgeneratoren. Der eine sorgt für ein randomisieren von 28 verschiedenen Fragen innerhalb der Rubrik. Der andere Zufallsgenerator ist (unter anderem) für den Zugriff auf den Rubrikkomplex über eine vorgeschaltete Erklärung (ansonsten wählt der Zufallsgenerator zwischen den 3 Fragen aus den anderen Rubriken aus, die kein Problem darstellen)
Der Code für den Zugriff auf die vorgeschaltete Erklärung lautet:
$zahl = value('X003x01');
if ($zahl == 1) {
   question('E101');
Der Code für den Zugriff auf die Rubrik lautet:
if ($zahl == 1) {
$fragen = valueList('Z001', NULL, 'label');
foreach ($fragen as $kennung) {
  question($kennung);
Das stellt jeweils nur einen Teil des Codes dar. Der Rest ist dann für die anderen Fragen, die aber kein Problem darstellen.

Vielen Dank
LG

1 Answer

0 votes
by SoSci Survey (327k points)

Dieser Code ist im Moment dafür verantwortlich, dass alle Fragen auf einer Seite gezeigt werden.

$fragen = valueList('Z001', NULL, 'label');
foreach ($fragen as $kennung) {
  question($kennung);
}

Damit die Fragen über mehrere Seiten verteilt werden, müssten Sie ein loopPage() ergänzen und jeweils nur einen Teil anzeigen.

$fragen = valueList('Z001', NULL, 'label');
$sets = array_chunk($fragen, 5);
$set = loopPage($sets);
foreach ($set as $kennung) {
  question($kennung);
}

Diese Ergänzung sollte innerhalb des IF-Filters problemlos funktionieren.

by s204488 (120 points)
Das hat soweit funktioniert. Allerdings ist jetzt folgender Fehler aufgekommen:
2: htmlspecialchars() expects parameter 1 to be string, array given in /var/www/s2survey/html/lib/s2survey/questionnaire/environment/QnrFunctions.php on line 2728
by SoSci Survey (327k points)
Ein verschateltes Array als Inhalt für loopPage() zu verwenden ist ein wenig ungewöhnlich. Aber nun, nach einem Update auf www.soscisurvey.de, dürfte der Fehler nicht mehr auftreten.

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

...