0 votes
in SoSci Survey (dt.) by s137404 (170 points)
edited by SoSci Survey

Hallo SosciSurvey Team!

Ich habe im Sinne einer Tagebuchstudie viele Fragebögen, die zu unterschiedlichen Zeitpunkten gesendet werden.

Im allerersten Fragebogen wird eine Mehrfachauswahlfrage gestellt, aus der max. 2 Antworten ausgewählt werden können. Diese gewählten Items werden dann in Folgefragen wiederverwendet. Den PHP-Code für die Wiederverwendung innerhalb des 1. Fragebogens habe ich erfolgreich geschrieben.

Doch schaffe ich es nicht, die Übernahme dieser Items vom 1. Fragebogen in alle weiteren Fragebögen zu übernehmen. Wie geht das?

Hier noch der PHP-Code für die Itemsübernahme innerhalb des 1. Fragebogens (vielleicht könnt ihr hier den PHP Code ergänzen, dass es für alle Fragebögen klappt... der 1. Fragebogen hat die Bezeichung 'FD_Yoga'):

$dyspepsie = getItems('DY01', 'min', 2);
if (count($dyspepsie) > 0) {
  question('DY04', $dyspepsie);
}

Besten Dank schonmal!

1 Answer

0 votes
by SoSci Survey (302k points)

Den PHP-Code für die Wiederverwendung innerhalb des 1. Fragebogens habe ich erfolgreich geschrieben.

Ich gehe davon aus, dass Sie spätere Interviews als separate Fälle im Datensatz speichern. Damit Sie hier auf frühere Daten zugreifen könnenn, müssten Sie die relevanten Daten mittels dbSet() in der "Datenbank für Inhalte" ablegen und im späteren Interview mittels dbGet() wieder abrufen.

Als Schlüssel können Sie einfach die Personenkennung (SERIAL) verwenden, die Sie mit caseSerial() abrufen können.

by s137404 (170 points)
Danke!
Ich hab mich anhand https://www.soscisurvey.de/help/doku.php/de:create:databank#beispiel_2daten_zwischen_interviews_austauschen (Bsp. 2) am PHP-Schreiben versucht und folgendes geschrieben:

a. Datenbank erstellen im 1. Fragebogen:
$dyspepsiedatenbank = getItems('DY01', 'min', 2); // habe hier 'is' gegen 'min' ausgetauscht
$key = 'FS-'.caseSerial();  
dbSet($key, $dyspepsiedatenbank);

b. Datenbank auslesen im 2. Fragebogen:
$key = 'FS-'.caseSerial();
$dyspepsiedatenbank = dbGet($key);
question('DY04', $dyspepsiedatenbank);

Problem: leider wird die Frage 'DY04' im 2. Fragebogen nicht angezeigt.

Frage: wie gehört der PHP Code richtig geschrieben?

Beste Grüße!
by SoSci Survey (302k points)
Das sieht schon ganz ordentlich aus. Prüfen Sie unter "Spezialfunktionen" -> "Datenbank für Inhalte" doch bitte einmal, ob dort ein passender Eintrag zu Ihrem Test-Interview hinterlegt wurde (die SERIAL finden Sie unter "Erhobene Daten" -> "Daten ansehen"). Und ob der Eintrag zu den ausgewählten Items passt.

Wenn das noch passt, hakt es im zweiten Teil. Ansonsten müssen wir im ersten Teil nach Problemen suchen. Dafür wäre die Debug-Information von der jeweiligen Fragebogen-Seite hilfreich. Und vielleicht ergänzen Sie noch zwei debug():

$dyspepsiedatenbank = getItems('DY01', 'min', 2);
debug($dyspepsiedatenbank);
$key = 'FS-'.caseSerial();  
dbSet($key, $dyspepsiedatenbank);

und

$key = 'FS-'.caseSerial();
$dyspepsiedatenbank = dbGet($key);
debug($dyspepsiedatenbank);
question('DY04', $dyspepsiedatenbank);
by s137404 (170 points)
Hallo!
Die obigen PHP Codes funktionieren doch! Die Lösung: ich hab die Fragebögen im Testlauf per Serienmail versandt, da ging es dann. Zuvor hatte ich das nur in der Rubrik "Fragebogen erstellen" ausprobiert, wo man isolierte Testläufe für die einzelnen Fragebögen macht, klar, dass die Ergebnisse dann nicht auf den isolierten Testlauf eines anderen Fragebogens übernommen werden können...

Hier nochmal die funktionierenden PHP-Codes:

a. Datenbank erstellen im 1. Fragebogen:
$dyspepsiedatenbank = getItems('DY01', 'min', 2);
$key = 'FS-'.caseSerial();  
dbSet($key, $dyspepsiedatenbank);

b. Datenbank auslesen im 2. Fragebogen:
$key = 'FS-'.caseSerial();
$dyspepsiedatenbank = dbGet($key);
question('DY04', $dyspepsiedatenbank);

Danke nochmal für den Support!

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

...