0 votes
in SoSci Survey (dt.) by s130443 (185 points)

Liebes Support-Team,

ich arbeite mit einem Panelanbieter zusammen, für den ich Personen-IDs aus der URL in meinem Datensatz speichere und am Ende der Umfrage über den Redirect-Link wieder "abgebe".
Dafür speichere ich mir sonst immer die ID als Geräte & übermittelnde Variable "tic" und schreibe auf der letzten Seite folgenden php-Code:

replace('%unserTicket%', 'tic', 'response');  // Platzhalter vorbereiten
redirect('https://redirect-link.de?c_0002=1&return_tic=%unserTicket%');

Das hat in bisherigen Studien gut geklappt.

Nun habe ich (zumindest für mich) einen Sonderfall: Die Personen sollen zufällig auf einen von zwei Fragebogen gelangen. Hierfür habe ich einen separaten Fragebogen erstellt, bei dem die Teilnehmenden über einen Zufallsgenerator (mit den Zetteln 1 = part1a und 2 = part1b) auf einen der beiden Fragebögen part1a oder part1b geleitet werden. Die Weiterleitung mache ich auf der letzten Seite des ersten Fragebogens über:

$qnr = value('AG06', 'label');

Da ja aber am Ende des folgenden Fragebogens die tic-Variable wieder an den Panel-Anbieter weitergegeben werden soll, muss die tic irgendwie übermittelt werden. Hierfür habe ich es erstmal über folgenden Code auf der letzten Seite des ersten Fragebogens probiert:

$qnr = value('AG06', 'label');
multiLevelDown($qnr, reference());

Das bringt mir aber nicht den gewünschten Effekt: Es wird nur die CASE-Variable des ersten Fragebogens als REF-Wert im zweiten Fragebogen gespeichert. Die tic wird noch nicht übermittelt.

Gibt es eine Lösung für das Problem? Also dass ich die tic, die im ersten Fragebogen "ankommt" am Ende des zweiten Fragebogens übergeben kann?

Ich bin sehr dankbar für Tipps.

1 Answer

0 votes
by SoSci Survey (328k points)

In Ihrem "alten" Code beziehen Sie sich nicht auf die REF-Variable, sondenr auf eine Variable "tic". Ich vermute mal, dass Sie dafür eine interne Variable entsprechend umbenannt haben.

replace('%unserTicket%', 'tic', 'response');

Entsprechend müssten Sie diese auch an den untergeodneten Fragebogen übergeben.

$tic = value('tic');
multiLevelDown($qnr, $tic);

Und im untergeordneten Fragebogen müssen Sie diese TIC natürlich mittels multiLevelData()auslesen.

$tic = multiLevelData();
replace('%unserTicket%', $tic);  // Platzhalter vorbereiten
redirect('https://redirect-link.de?c_0002=1&return_tic=%unserTicket%');
by s130443 (185 points)
Vielen Dank für die schnelle Antwort! Das ergibt natürlich Sinn.

Ich habe das genau so umgesetzt, allerdings wird bei mir beim Testen (ich schreibe dann einfach im übergeordneten Fragebogen &tic=1234 hinter die URL) im untergeordneten Fragebogen die tic-Nummer nicht im Datensatz angezeigt.
Hat es also noch nicht geklappt? Oder ist das normal? (Für mich wäre es für die Kommunikation mit dem Panel-Anbieter am besten, wenn die Variable nochmal im Datensatz des untergeordneten Fragebogens stünde.)
by s130443 (185 points)
Ach, entschuldigt bitte, ich glaube, es hat geklappt. Zumindest sehe ich im Redirect-Link in der URL, dass bei "return_tic" die korrekte Zahl steht.
Gibt es denn aber die Möglichkeit, dass die tic-Zahl auch in meinem untergeordneten Fragebogen im Datensatz steht? Dass würde mir auch bei der Datenauswertung später helfen.
by SoSci Survey (328k points)
Natürlich, Sie müssen den Wert nur mittels put() in den Datensatz schreiben.

$tic = multiLevelData();
put('IV01_01', $tic);
by s130443 (185 points)
Perfekt, danke sehr!!

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

...