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

Grundsätzlich suche ich nach Möglichkeiten, eine Variable zur späteren Verwendung im Fragebogen zu deklarieren ohne diese in den Datensatz (aus Gründen des Datenschutzes) mitaufzunehmen.

Dies wäre ja eigentlich mit der PHP-Funktion registerVariable() möglich, nur habe ich bislang keine Möglichkeit gefunden, den Wert eines Input-Feldes, wie bspw. den eines Textfeldes durch registerVariable() zu speichern, ohne eine interne Variable zu deklarieren (die ja in den Datensatz aufgenommen wird).

Meine derzeitige QuickFix-Lösung besteht daraus, eine Interne Variable anzulegen, den Wert in diese mitaufzunehmen und diese zu einem späteren Zeitpunkt durch put() zu überschreiben. Dies resultiert natürlich in Warnungen, die ich gerne vermeiden würde.

Gibt es eine bessere Lösung?

Vielen Dank

EDIT: Soeben habe ich die Funktion dropValue() entdeckt, die das Problem löst. Aus Interesse wüsste ich trotzdem gern, ob es möglich ist eine Variable ohne Interne Variable temporär zu speichern.

in SoSci Survey (dt.) by s059552 (235 points)
edited by s059552

1 Answer

+1 vote
 
Best answer

Prinzipiell könnten Sie noch mit readGET() arbeiten - allerdings müssen Sie sich dann auch noch mit getRoute() herumschlagen, weil ein Neu-Laden der (Folge-)Seite sonst schnell unbeabsichtigt den eingelesenen Wert überschreibt.

Meine Empfehlung wäre auch das dropValue() gewesen.

by SoSci Survey (85k points)
selected by s059552
Danke für die rasche Antwort! Dann bleibt es bei `dropValue()`, wobei ich noch eine Folgefrage hätte: Falls ein Studienteilnehmer den Fragebogen abbricht, obwohl die Seite mit `dropValue()` noch nicht erreicht wurde, bleibt die zu löschende Information im Datensatz. Gibt es eine Möglichkeit, "Clean Up"-Befehle zu deklarieren, die bei Abbruch durchgeführt werden?
Das dropValue() müssten Sie direkt nach der Seite mit der Frage verwenden. Davor lesen Sie den Wert mittels value() aus, und machen die PHP-Variable mittels registerVariable() für den restlichen Fragebogen verfügbar.

Dann wird der Wet "intern" in der Datenbank gespeichert (solange bis die letzte Seite erreicht wird), nicht aber im Datensatz.
...