Aus meiner Sicht ist hier die Nachvollziehbarkeit ein wichtiger Punkt (weil wir ja von Forschung sprechen). Deshalb würde ich dringen empfehlen, dass nicht eine Frage zum Einsatz kommt, sondern 20 davon. Dafür können Sie natürlich auch eine Skala mit Zwischenwerten nehmen - im Darstellungmodus "Kärtchen" und mit 20 Items. Dann würden Sie in jedem Durchgang ein Item anzeigen.
Das hat den Vorteil, dass Sie den vorherigen Wert - oder besser noch alle vorheigen Antworten - aus den Variablen auslesen können. valueList()
würde Ihnen jeweils den aktuellen Stand liefern, sodass Sie ohne mitlaufende Zählung immer spontan das Angebot berechnen können. In der Programmierung ist das "stateless" (wenn wir vom Interview mal absehen, das natürlich einen Zustand hat) und es lässt viele Probleme gar nicht erst entstehen.
Eventuell möchten Sie die gemachten Angebote zur Sicherheit (Nachvollziehbarkeit und vor allem Einfachheit bei der Auswertung) nochmal in 20 interne Variablen speichern.
Dazu müsste ich noch wissen, wie ich ein element in einer Frage dynamisch aktualisieren kann
Das ist einfach, dafür verwenden Sie Platzhalter.
Wie bette ich das ganze in php code mit loopPage() ein?
Verwenden Sie loopPage()
, aber lassen Sie das mit dem Switch weg. Zählen Sie einfacher immer das Array ab, das Sie mit valueList()
bekommen. Sonst wird es ziemlich konfus, weil eine Seite vielleicht aufgrund einer fehlenden Antwort oder weil der Befragte F5 drückt nochmal angezeigt wird.
Ich muss hier ja eigentlich mit globalen Variablen arbeiten.
Das wäre mit registerVariable()
möglich ... aber aufgrund der vorgenannten Gründe behaupte ich, dass Sie sich damit keinen Gefallen tun. Nicht umsonst gibt es loopPage()
, damit man eben nicht auf diese ganzen Fallstricke achten muss.
WIe deklariere ich $qa1_offer am Anfang, bevor ich den Loop starte?
Wenn Sie eine Funktion haben, die aus den bisherigen Antworten ein Angebot berechnet, dann können Sie darin natürlich auch einen Bedingung für das erste Angebot (noch keine Werte vorhanden) definieren.
Werden alle Antworten im Loop separat erfasst?
Nur wenn Sie in jeder Wiederholung eine andere Frage zeigen. Daher auch zu Beginn der Hinweis auf die 20 Items - dann ist das ganz einfach:
$i = loopPage(20);
question('AB01', $i+1);
Wie bereits erwähnt wäre hilfestellung zu replace() noch sehr gut, ich bin ein bisschen überfordert was das ganze angeht :O
Schauen Sie mal die oben verlinkte Anleitung zu Platzhaltern durch. Und dann fragen Sie gerne nochmal konkret nach.