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

Hallo,

meine heutige Frage bezieht sich auf das Einlesen von vom Feldanbieter mitgeschickten Variablen über "Gerät und übermittelte Variablen".

Ich habe, dem Handbuch folgend, eine entsprechende interne Variable angelegt, aber beim Test heisst es nun:

In dem Befehl put() wurde eine Kennung IV03_RV1 angegeben. Diese wurde
nicht als gültige Kennung erkannt.

Die Variable IV03_RV1 gibt es in diesem Projekt nicht (siehe
Variablen-Übersicht). Daher kann kein Antwort-Wert dafür ermittelt
werden.

In der Variablen-Überischt taucht diese Variable auf, ist aber grau, nicht schwarz, vermutlich weil bisher nicht im Fragebogen enthalten.

Frage 1: Feldanbieter ist respondi und aus deren Redirect-Links entnehme ich, dass die POST/GET-Variable "return_tic" heissen müsste (siehe auch hier). Diese Kennung habe ich als "Post/Get-Variable"-Info für die interne Variable eingesetzt. Im PHP Code setze ich dann (in meinem Fall) IV03_RV1 für diese Variable ein. Ist das so richtig oder ist der Fehler schon hier passiert?

Frage 2: Wenn das soweit stimmt, wie lese ich eine solche Variable auf der ersten Fragebogenseite ein? Alle Beispiele die ich dazu finden konnte (auch im Forum), arbeiten mit "readGet" und immer wieder wird dann doch davon abgeraten, es damit zu lösen.

Ich empfehle anstatt readGET() übrigens die Verwendung einer Frage vom
Typ "Gerät und übermittelte Variablen". Dann ist das getRoute() nicht
erforderlich.

Im Handbuch finde ich dann nur, wie ich eine solche Variable anlege (ist bereits erfolgt), wie ich sie einlese, habe ich bisher nicht gefunden. Auf readGet soll ich eigentlich nicht verzichten, wenn ich die zuletzt zitierte Erläuterung oben richtig verstehe? Im Moment sieht der Code wie folgt aus:

    if (!isset($id)) {
  $id = readGET('return_tic');
  registerVariable('id'); 
  put('IV03_RV1', $id); 
  replace('%reference%', 'IV03_RV1', 'response');

}

Frage 3: Zum besseren Verständnis: Wofür steht das 'response' in der Platzhalterzeile ganz unten?

Ich danke sehr für die stete Hilfe.
Anne

in SoSci Survey (dt.) by s090684 (235 points)

1 Answer

0 votes

Es gibt sowohl einen Fragetyp "interne Variablen" als auch einen Fragetyp "Gerät und übermittelte Variablen".

Wenn Sie eine "interne Variable" anlegen, dann ist dies einfach nur ein Platz im Datensatz, den Sie mittels put() befüllen können.

Wenn Sie bei "Gerät und übermittelte Variablen" eine GET-Variable eintragen (dort müssten Sie dann z.B. "return_tic" eintragen), dann wird dieser Wert auftomatisch eingelesen (wenn die Frage auf der ersten Seite im Fragebogen liegt) und es ist kein readGET() oder put() mehr erforderlich.

Sie würden dann auf der ersten Seite einfach IV03 in den Fragebogen ziehen und darunter folgenden PHP-Code schreiben:

replace('%panelID%', 'IV03_RV1', 'response');

Der passende Redirect würde dann einfach den Platzhalter %panelID% verwenden. Den Platzhalter %reference% sollten Sie hier nicht verwenden, da dieser automatisch mit der Referenz (GET-Variable "r=" beim Aufruf des Fragebogens) vorbelegt wird.

by SoSci Survey (79k points)
Danke! Es funktioniert nur mit %reference%, nicht mit %panelID%. Scheinbar geht es ganz ohne Get-Variable. Ich habe scheinbar viel komplizierter gedacht als nötig gewesen wäre. In jedem Fall wieder vielen Dank für die Hilfe, ist ja wirklich bemerkenswert, wie schnell Sie reagieren.
Einlesen von 2 Variablen von Panelanbieter
...