0 votes
in SoSci Survey (dt.) by s255294 (295 points)

Hallo,

ich versuche gerade eine Studie zu erstellen, die aus 3 Fragebögen zu drei Zeitpunkten besteht, wobei der erste und der letzte von derselben Person ausgefüllt werden sollen und einer dazwischen von einem persönlichen Kontakt dieser Person.

Mein Problem ist nun, dass ich im letzten Fragebogen auf Daten beider vorheriger Fragebögen zurückgreifen muss, wofür ich die Datenbank für Inhalte nutzen möchte.

Das Hinterlegen der Daten im ersten Fragebogen und das Abrufen dieser Daten im letzten funktioniert bisher einwandfrei mit folgendem Code

Speichern:

$key = 'S-' .caseNumber();
$data = array(
  value('IV01_01'), 
  value('IV01_02'), 
  value('IV01_03'), 
  value('IV01_04'), 
  value('IV01_05')
);
dbSet($key, $data);

Abrufen:

$key = 'S-15';
$fb = dbGet($key);

Die gespeicherten Antworten der Person sollen nun im mittleren Fragebogen durch Antworten der Kontaktperson ergänzt werden. Da diese über einen Link eingeladen wird, der auch die caseNumber der dazugehörigen Person enthält dachte ich, dass ich diese einfach weiterhin als key nutzen kann, um den Array der Person zu ergänzen, was ich mit folgendem Code versucht habe:

//Daten abrufen
$key = 'S-'.caseNumber();

//Daten ergänzen
$data[6] = value('IV02_01');
$data[7] = value('IV02_02');
$data[8] = value('IV02_03');
$data[9] = value('IV02_04');
$data[10] = value('IV02_05');
$data[11] = value('IV02_06');

//Daten erneut speichern
$data = dbSet($key, $data);

Dies scheint allerdings nicht zu funktionieren.
Können Sie mir vielleicht weiterhelfen?

by SoSci Survey (327k points)
Die Fallnummer ist vermutlich in jedem der drei Durchgänge eine andere. Die taugt also eher nicht.

Wie (anhand welcher Variable/n) ordnen Sie die drei Fälle denn einander zu?
by s255294 (295 points)
Anhand der Fallnummer, die mithilfe von %caseNumber% in den Einladungsmails zur Folgestudie enthalten sind. Diese wird dann aus dem Link entnommen und wieder unter $id abgespeichert:

//Fallnummer speichern (zum Matching mit Target)
if (!isset($id)) {
   $id = readGET('id');
}

registerVariable('id');
put('ID01_01', $id);

Dies funktioniert glaube ich auch soweit ganz gut (da in der Folgestudie $id den Wert der Fallnummer der Vorgängerstudie hat.) Was allerdings nicht funktioniert hat, ist diese $id-Variable wiederum als key zu verwenden, um die gespeicherten Inhalte der Vorgängerteilnehmenden zu ergänzen.

1 Answer

0 votes
by SoSci Survey (327k points)
selected by s255294
 
Best answer

Anhand der Fallnummer, die mithilfe von %caseNumber% in den Einladungsmails zur Folgestudie enthalten sind. Diese wird dann aus dem Link entnommen

Okay, kann man machen. Dann ist es aber erstmal wichtig, dass Sie in beiden Folgebefragungen auf ID01_01 zurückgreifen, wenn Sie den Datenbankschlüssel erzeugen:

$key = 'S-'.value('ID01_01');

Beim Ergänzen der Daten müssen Sie dann darauf achten, dass Sie die Daten erst mittels dbGet() laden, dann ergänzen, und dann mit dbSet() schreiben.

// Daten abrufen
$key = 'S-'.value('ID01_01');
$data = dbGet($key);

// Daten ergänzen
$data[6] = value('IV02_01');
$data[7] = value('IV02_02');
$data[8] = value('IV02_03');
$data[9] = value('IV02_04');
$data[10] = value('IV02_05');
$data[11] = value('IV02_06');

// Daten speichern
$data = dbSet($key, $data);

Und wenn irgendwo die Meldung kommt, dass es den Schlüssel nicht gibt, dann passt mit der ID noch etwas nicht. Prüfen Sie in dem Fall nochmal ID01_01.

Ich würde zum Abspeichern der ID übrigens eine Frge "Gerät und übermittelte Variablen" empfehlen statt dem readGET(). Dann brauchen sie sich um isset() u.s.w. keine Sorgen machen, das funktioniert etwas robuster.

by s255294 (295 points)
Super vielen Dank, das hat geklappt!

Danke auch für die Empfehlung des Fragetyps "Gerät und übermittelte Variablen". Können Sie mir noch sagen, was ich hierbei auswählen muss, um die ID abzuspeichern?
Und ist es mit diesem Fragetyp auch möglich die Seriennummer bzw. den Teilnahmecode abzuspeichern?
Ich habe nämlich versucht diesen mit $serial = SERIAL(); abzuspeichern, was leider nicht geklappt hat, habe aber auch nirgendwo finden können, wie diese Variable normalerweise abrufbar ist
by SoSci Survey (327k points)
>  Können Sie mir noch sagen, was ich hierbei auswählen muss, um die ID abzuspeichern?

Es war überfällig, daher haben wir zu dem Fragetyp endlich eine kleine Anleitung verfasst: https://www.soscisurvey.de/help/doku.php/de:create:questions:client#uebermittelte_daten

Rückfragen und Wünsche, was in der Anleitung noch ergänzt werden sollte oder Hinweise, was schwer verständlich ist, sind gerne willkommen :)
by s255294 (295 points)
Vielen Dank für die Anleitung, die sehr hilfreich war!

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

...