Lieber Online-Support,
ich habe hier bereits einmal eine Frage zu meinem Problem gestellt und dazu schon eine ausführliche Antwort bekommen. Trotzdem komme ich nicht weiter. Ich verstehe im Manual, wie die Funktionen bei einzelnen Beispielen verwendet werden, aber mir ist nicht klar, wie ich sie für meinen Fall verknüpfen kann.
Die Teilnehmenden rekonstruieren den Morgen ihres gestrigen Tags in maximal 10 Episoden. Eine Episode ist eine Frage mit 4 Items (jeweils offene Textangaben zu Name, Beginn, Ende und Notizen zur Episode). Die Kennung von Episode 1 ist LM02, die Fragenkennungen LM02_01, LM02_02, LM02_03, LM02_04. Entsprechend sind die Kennungen bis Episode 10 (LM11 mit LM11_01 etc.). Die Teilnehmenden müssen die erste Episode ausfüllen, danach ist die Anzahl, die sie angeben, frei. Eine Episode gilt als ausgefüllt, wenn eins ihrer Items beantwortet wurde (nicht nur Leerzeichen).
Zu allen berichteten Episoden sollen die Teilnehmenden nun einen Frageblock mit immer denselben Fragen beantworten (10 Rubriken mit denselben Fragen: Rubrik M1, M2, …). Hierzu möchte ich die Funktion loopToPage() verwenden (keine Multilevel-Struktur aufgrund der späteren Auswertung). Auf Seite 1 (RMa) soll die jeweils ausgefüllte Episode zusammen mit der Beschriftung der Items/Frage stehen. Auf Seite 2-4 (RMb-RMd) werden die 12 Fragen verteilt angezeigt.
Mein Problem ist nun,
dass ich es nicht schaffe den PHP Code zusammenzustellen, um zu ermitteln, wie viele Episoden angegeben wurden. Diese Zahl benötige ich für LoopToPage(). Ich weiß, dass ich pro Frage ermitteln kann, ob mindestens ein Item ausgefüllt wurde, aber ich schaffe es nicht in PHP die Information aus den einzelnen Fragen zu einer Variable, die die Anzahl ausdrückt, zusammenzuführen. Eine Episode ist beantwortet, wenn mindestens ein Item ausgefüllt wurde. Mit trim() kann ich überprüfen, ob nur Leerzeichen eingegeben sind. Aber ich komme auch nicht darauf, wie ich das alles zusammen in PHP ausdrücke. Ich denke, ich müsste mit Arrays arbeiten und array_merge. Aber die praktische Umsetzung schaffe ich nicht.
dass ich nicht weiß, wie ich sicherstellen kann, dass dann auf Seite 1 (RMa) tatsächlich nur die beantworteten Episoden angezeigt werden. Es ist möglich, dass LM02 – LM04 ausgefüllt, LM05 und LM06 ausgelassen wurden, und LM07 wieder ausgefüllt wurde. Die Episoden sollen nicht wie die Frageblöcke der Reihe nach entsprechend der jeweils zutreffenden Wiederholung angezeigt werden, sondern unausgefüllte Episoden sollen übersprungen werden. Das heißt, um auf dieses Beispiel zurückzukommen, es sollen nicht LM02-LM05 angezeigt werden (d.h. die ersten 4 Episoden), sondern LM02-LM04 und dann LM07.
Ich würde mich wirklich sehr über Hilfe freuen, vor allem in Form von, wie man das praktisch in PHP ausdrücken könnte. Vielen, vielen Dank schon einmal!
Bisher habe ich:
Erklärung: Momentan frage ich mit einer Auswahlfrage (ME01) ab, wie viele Episoden die Teilnehmenden angegeben haben.
Seite 1 (RMa):
$anzahl = (int)value('ME01');
LoopToPage (‘RMd‘, $anzahl)
$i = loopIndex()
Seite 2 (RMb)
$rubriken = array (‘M1‘‚ ‘M2‘,‘M3‘,‘M4‘,‘M5‘,‘M6‘,‘M7‘,‘M8‘,‘M9‘,‘MT‘);
registerVariable ($rubriken);
$i = loopIndex();
$rubrik = $rubriken [$i];
question (id ($rubrik, 1));
question (id ($rubrik, 2));
question (id ($rubrik, 3));
question (id ($rubrik, 4));
question (id ($rubrik, 5));
Seite 3 (RMc):
$i = loopIndex();
$rubrik = $rubriken [$i];
question (id ($rubrik, 6));
question (id ($rubrik, 7));
question (id ($rubrik, 8));
question (id ($rubrik, 9));
question (id ($rubrik, 10));
question (id ($rubrik, 11));
Seite 4 (RMc):
$rubrik = $rubriken[loopIndex()];
question (id ($rubrik, 12));