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

0 votes

Für einen Fragebogen mit wiederkehrenden Elementen möchte ich einen Zähler verwenden, der mittels PHP mitzählt und den ich nach jeder Seite in der gleichen internen Variable abspeichere.

Innerhalb meines Javascripts möchte ich nun auf den Wert des Zählers zugreifen können. Bisher habe ich nur die Möglichkeit gefunden, mittels Javascript Werte in internen Variablen abzuspeichern, nicht aber, diese auszulesen.

Alternativ habe ich versucht, den Wert des Zählers aus dem PHP-Skript auszulesen, was aber nicht funktioniert, weil die hierfür benötigte Zeichenfolge '?>' in SosciSurvey blockiert wird. Gibt es innerhalb von SosciSurvey eine andere Möglichkeit, Werte von PHP an Javascript weiterzugeben, bzw. haben Sie einen alternativen Vorschlag für eine Lösung?

in SoSci Survey (dt.) by s096529 (230 points)

1 Answer

+1 vote

Für einen Fragebogen mit wiederkehrenden Elementen möchte ich einen Zähler verwenden, der mittels PHP mitzählt und den ich nach jeder Seite in der gleichen internen Variable abspeichere.

Eine kleine Warnung vorab: Das kann zu Fehlern führen - und zwar dann, wenn eine Seite mehrfach geladen/ausgeführt wird. Etwa weil der Teilnehmer die Seite einfach neu lädt, weil eine Frage nicht beantwortet wurde und die Seite deshalb wiederholt wird oder weil der Zurück-Knopf (sofern angeboten) im Fragebogen verwendet wird.

Die Lösung besteht darin, dass man auf jeder Seite in eine eigene Variable speichert und dann valueSum() verwendet.

Innerhalb meines Javascripts möchte ich nun auf den Wert des Zählers zugreifen können.

Sie können auf eine interne Variable zugreifen, wenn Sie diese in den Fragebogen gezogen haben. Einfach für document.getElementById("IV01_01").value. Eventuell müssen Sie den Wert noch mit parseInt() in eine Zahl umwandeln.

Wichtig dabei: Die Abfrage muss unter der internen Variable erfolgen. Oder später aufgerufne werden, etwa mittels window.addEventListener("load", ...).

Einfacher geht es aber, wenn Sie einen Platzhalter direkt im JavaScript-Code verwenden. Dafür erstmal ein wenig PHP-Code:

replace('%wert%', 'IV01_01', 'response');

... und dann im JavaScript:

var sonstwas = %wert%;
by SoSci Survey (72.1k points)
Vielen Dank für die Hilfe! Es funktioniert nun mit der replace-Lösung.
...