0 votes
in SoSci Survey (dt.) by s132297 (120 points)

Hallo zusammen,

ich habe in SoSci-Survey einen übergeordneten Fragebogen programmiert, der zwei untergeordnete Fragebögen enthält. Die Teilnehmenden bekommen direkt zu Beginn der Befragung zufällig einen der beiden untergeordneten Fragebögen zugewiesen. Dazu verwende ich im übergeordneten Fragebogen die PHP-Funktion „multiLevelDown()“. Meine Frage hierzu: Sollte der Redirect-Link auf der vorletzten Seite der beiden untergeordneten Fragebögen oder auf der des übergeordneten Fragebogens eingefügt werden?

Zudem habe ich eine Frage zu den Platzhaltern im Redirect-Link: Der Panel-Anbieter, mit dem ich zusammenarbeite, hat mir einen Redirect-Link mit zwei Beispiel-Platzhaltern zugeschickt, die ich durch andere Platzhalter ersetzen soll. Da ich ja mit der „multiLevelDown()“-Funktion arbeite, müsste der PHP-Code mit dem Redirect-Link auf der vorletzten Seite des Fragebogens laut SoSci-Survey-Benutzerhandbuch wie folgt aussehen:

redirect('https://www.panelanbieter.de/complete?xyz=ABCDEF&uid='.multiLevelData());

Den Platzhalter "%reference%" kann ich ja dann nicht verwenden, habe ich das richtig verstanden? Füge ich dann bei den beiden Beispiel-Platzhalter im Redirect-Link jeweils die Funktion "multiLevelData()" ein?

Außerdem bat mich der Panel-Anbieter, dass ich für jede Person zwei IDs erfassen, speichern und diese bei der Rückleitung an ihn übermitteln soll. Was muss ich dafür konkret tun? Reicht es aus, den Redirect-Link in das Befragungsprojekt einzubauen oder sind weitere Schritte erforderlich?

Vielen Dank im Voraus!

1 Answer

0 votes
by SoSci Survey (327k points)

Sollte der Redirect-Link auf der vorletzten Seite der beiden untergeordneten Fragebögen oder auf der des übergeordneten Fragebogens eingefügt werden?

Beides ist möglich. Falls Sie im untergeordneten Fragebogen weiterleiten, müssen Sie den Teilnehmercode vom über- in den untergeordneren Fragebogen übergeben.

Füge ich dann bei den beiden Beispiel-Platzhalter im Redirect-Link jeweils die Funktion "multiLevelData()" ein?

Das kommt darauf an, was Sie in multiLevelDown() genau übergeben - aber ja, wenn das nur die Referenz ist, würde es so funktionieren.

Außerdem bat mich der Panel-Anbieter, dass ich für jede Person zwei IDs erfassen, speichern und diese bei der Rückleitung an ihn übermitteln soll.

Dann brauchen Sie erstmal eine Frage "Gerät und übermittelte Variablen", um die beiden Parameter einzulesen, dann übergeben Sie beide mittels multiLevelDown() als Array, und zerlegen selbiges für den Redirect wieder. Posten Sie gerne Ihren PHP-Code, wenn Sie an einer Stelle nicht weiterkommen.

by s132297 (120 points)
> Sie verwenden im PHP-Code einmal die Variable G001_RV1 und einmal DG001_RV2, was auf den ersten Blick nach 2 unterschiedlichen Fragen aussieht.

Das ist mein Fehler, ich habe mich verschrieben. Der Code sieht eigentlich so aus:
$qnr = value('ZG01', 'label');
$data = [
    'ID'  => value('G001_RV1'),
    'state' => value('G001_RV2'),
];
multiLevelDown($qnr, $data);

> In der zweiten Zeile tauschen Sie nur das redirect durch html, der Rest ist für eine bessere Darstellung. Dann sehen Sie, welche URL verwendet wird.

Mir wird zwar der Link zum Fragebogen angezeigt, aber ohne meine Testkennung, die ich für die beiden Parameter "ID" und "state" einsetze.

Also angenommen der Link zum Fragebogen wäre dieser: https://www.soscisurvey.de/Beispiel-Projekt-2024/?ID=xxx&state=statevalue   

Dann habe ich da zwei Beispiel-Kennungen eingetragen wie:
https://www.soscisurvey.de/Beispiel-Projekt-2024/?ID=12345&state=12345   

und den Fragebogen ausgefüllt.

Wenn ich dann am Ende des Fragebogens auf die Seite des Panel-Anbieters geleitet werde, steht in der URL der Redirect-Link, den mir der Panel-Anbieter zugeschickt hat so: https://...list=1&ID=&state=
by SoSci Survey (327k points)
Okay, dann passt noch etwas nicht. Wie sieht dnn Ihr Code im untergeordneten Fragebogen genau aus? Wenn er aussieht wie im Muster oben, nur mit angepassten Schlüsseln...

$data = multiLevelData();
redirect('https://...?list=1&ID='.$data['ID'].'&state='.$data['state']);

Dann ergänzen Sie bitte noch ein debug(), um mehr Details zu sehen:

$data = multiLevelData();
debug($data);
redirect('https://...?list=1&ID='.$data['ID'].'&state='.$data['state']);
by s132297 (120 points)
Ich habe versucht, den Code so ins Befragungsprojekt einzubinden, wie es mir hier im Verlauf dargestellt wurde. Allerdings führte dies zu einer Fehlermeldung. Ich habe mich daher an das SoSci-Survey -Benutzerhandbuch "Zufallsauswahl für Fragebögen" --> "Zusammenspiel mit externen Panels" gehalten. Das hat nun dazu geführt, dass - wenn ich den Fragebogen testweise ausfülle - ich am Ende zumindest schon mal zum Panel-Anbieter weitergeleitet werde und mir die beiden Variablen "ID" und "state" im Datensatz angezeigt werden. Aber wie gesagt, leider werden die Test-Kennungen dann nicht in der URL angezeigt.

Mein PHP-Code im übergeordneten Fragebogen sieht so aus:
$qnr = value('ZG01', 'label');
$data = [
    'ID'  => value('G001_RV1'),
    'state' => value('G001_RV2'),
];
multiLevelDown($qnr, $data);


Und das ist der Redirect Link, den ich am Ende auf der vorletzten Seite in beide untergeordneten Fragebögen eingebunden habe:
 
$data = multiLevelData();
redirect('https://....?list=1&ID='.value('G001_RV1').'&state='.value('G001_RV2'));

Ansonsten habe ich keine weiteren PHP-Codes eingebunden.
by SoSci Survey (327k points)
Knapp dran - nur können sie auf value('G001_RV1') im Redirect nicht zurückgreifen, weil Sie da ja in einem anderen Datensatz sind, wo diese Variablen noch gar nicht mit Werten belegt wurden. Stattdessen verwenden Sie $data, wo Sie die beiden Werte als Array übergeben haben.

$data = multiLevelData();
redirect('https://...?list=1&ID='.$data['ID'].'&state='.$data['state']);

Wenn Sie dann einen Fehler gemeldet bekommen, posten Sie diesen gerne.
by s132297 (120 points)
edited by s132297
Ich habe de Redirect-Link nun so angepasst, wie Sie es mir erklärt haben und die Test-Kennungen werden nun in der URL angezeigt, wenn ich zum Panel-Anbieter weitergeleitet werde.

Vielen Dank für die Hilfe!

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

...