====== Fortsetzung anhand eines externen Codes ====== Diese Anleitung beschreibt, wie Sie eine Referenz ([[:de:survey:url#einen_link_markieren_r|Einen Link markieren]]) oder einen anderweitig übergebenen Personencode ([[:de:create:questions:client]]) nutzen können, ... * um ein unterbrochenes Interview fortzusetzen (siehe auch [[:de:survey:resume]]). * um die mehrfache Teilnahme zu unterbinden (siehe auch [[:de:survey:unique-respondents]]). * um mehrere Frageböge in einem Befragungsprojekt unabhängig voneinander fortsetzen zu können (verwenden Sie dafür unterschiedliche Präfixe in den Datenbankschlüsseln). **Hinweis:** Verwenden Sie diese Umsetzung nur, wenn die reguläre Lösung mittels [[:de:survey:mailing:sosci|Serienmails]] oder [[:de:survey:serials]] etwas aus organisatorischen Gründen nicht verwendet werden kann. ===== Funktion ===== Bei dieser Lösung wird die [[:de:create:databank]] genutzt. Hier wird für jeden Personencode die [[:de:survey:url#interview-kennung_i|Kennung des Interviews]] (case token) abgelegt. Anhand der Interview-Kennung kann das vormals begonnene Interview fortgesetzt werden. ===== Umsetzung ===== Lesen Sie auf der ersten Seite des Fragebogens die Personenkennung ein, hier im Beispiel würde diese als Referenz (''r=...'') im Link übergeben. $personID = reference(); Prüfen Sie anschließend, ob in der Datenbank für Inhalte ein Eintrag für diese Personenkennung existiert. Der folgende PHP-Code stellt der Kennung noch ein Präfix ''user'' voran. Dies vereinfachte die Verwendung der Datenbank für unterschiedliche Zwecke. Das Präfix kann frei gewählt werden. $key = 'user-'.$personID; $info = dbGet($key); Falls ein Eintrag existiert, erfolgt direkt eine Weiterleitung zu dem entsprechenden Fall, und das aktuelle Interview wird aus dem Datensatz gelöscht. Ansonsten (''else'') wird die Interview-Kennung des aktuellen Interviews in die Datenbank geschrieben. if ($info) { $url = info('project.url').'?i='.$info[0]; dropCase(); redirect($url); } else { dbSet($key, caseToken()); } Die oben genannten PHP-Code-Teile müssen alle zusammen in einem "PHP-Code" Element stehen. Dieses ganz oben auf der ersten Fragebogen-Seite platziert werden. Es ist aber auch denkbar, z.B. den Eintrag in die Datenbank für Inhalte erst nach einem Screenout vorzunehmen. DAnn würde der ''else''-Teil zu Beginn wegfallen, und der später platzierte Code wurde aussehen wie folgt. $personID = reference(); $key = 'user-'.$personID; dbSet($key, caseToken()); Somit würde ein Interview nur dann fortgesetzt, wenn die Stelle mit dem zweiten PHP-Code mit ''dbSet()'' erreicht wurde.