0 votes
in SoSci Survey (dt.) by s157289 (180 points)

Liebes Sosci-Forum,

für meinen Fragebogen lasse ich von Versuchspersonen bei der ersten Datenerhebung einen Code angeben, den ich extra als String speichere.

Beim zweiten Erhebungszeitpunkt werden für Personen, die bereits einmal teilgenommen haben, nur noch Teile des Fragebogens erhoben. Für diejenigen, die noch nicht teilgenommen haben müssen auch Angaben wie z.B. zur Soziodemographie noch erhoben werden.

Dafür frage ich ab, ob bereits einmal teilgenommen wurde und wenn ja, soll der Code nochmals eingegeben wurde. Natürlich könnten die Versuchspersonen (aus Versehen) angeben, dass sie bereits teilgenommen haben, obwohl das gar nicht der Fall ist.

Ich würde dementsprechend gerne wissen, ob es in Sosci möglich ist, den Inhalt der Variable ST08_01 (Code aus Zeitpunkt 1) mit ST08_02 (Code aus Zeitpunkt 2) zu vergleichen und wenn die beiden nicht übereinstimmen, die Versuchsperson 1. darauf hinzuweisen, dass es im System keine Übereinstimmung gibt und/oder 2. ihr dann die Möglichkeit den Fragebogen "neu" auszufüllen.

Ich würde mich über eine Antwort sehr freuen.

LG

1 Answer

0 votes
by SoSci Survey (304k points)
edited by SoSci Survey

Ich würde dementsprechend gerne wissen, ob es in Sosci möglich ist, den Inhalt der Variable ST08_01 (Code aus Zeitpunkt 1) mit ST08_02 (Code aus Zeitpunkt 2) zu vergleichen

Am einfachsten ist das möglich, wenn Sie den Code im ersten Fragebogen mittels dbSet() in der "Datenbank für Inhalte" hinterlegen. Dann können Sie im zweiten Fragebogen mittels dbGet() prüfen, ob der Code bereits bekannt ist. Wenn nicht, kann man die Befragten mittels repeatPage() auf die vorige Seite mit der Code-Eingabe bzw. Auswahl "noch nicht teilgenommen" zurück schicken.

by s157289 (180 points)
Danke für die Antwort! Wenn ich den unten angeführten Code nutze um den Code aus 'ST08_01' zu speichern, wie kann ich ihn dann mit 'ST08_02' vergleichen und davon ausgehend meinen Fragebogen weiterlaufen lassen?

$data = array(
  value('ST08_01'),
);
dbSet(caseSerial(), $data);
by SoSci Survey (304k points)
Mit caseSerial() werden Sie nicht weiterkommen, denn Sie haben ja keine Personenkennung in den beiden Interviews, welche (wie bei Nutzung der Serienmail-Funktion) automatisch gleich vergeben würde.

Stattdessen ist Ihr persönlicher Code diese Variable. Als Datenbank-Schlüssel könnten Sie also so etwas wie folgt verwenden:

$key = 'code-'.value('ST08_01');
dbSet($key, 1);
by s157289 (180 points)
Das habe ich nun geändert. Allerdings wird dann jeder Eintrag aus ST08_01 (z.B. HAG02) mit 'code-' abgespeichert, also z.B. 'code-HAG02'. Mir ist noch nicht ganz klar, wie ich im zweiten Fragebogen damit umgehen soll.

Für den zweiten Fragebogen habe ich bisher diesen PHP-Code:

$code2 = implode(valueList('ST06'));
put('ST08_02', $code2);

$key2 = 'code2'.value('ST08_02');
dbSet($key2, 1);

$info = dbGet('code');
$info2 = dbGet('code2');
// No access without a valid reference
if ($info != $info2) {
  text('Der Code scheint nicht vorhanden zu sein. Sie können den Code erneut eingeben.');
  question('ST06');
}
by SoSci Survey (304k points)
> Allerdings wird dann jeder Eintrag aus ST08_01 (z.B. HAG02) mit 'code-' abgespeichert, also z.B. 'code-HAG02'. Mir ist noch nicht ganz klar, wie ich im zweiten Fragebogen damit umgehen soll.

Im zweiten Fragebogen sehen Sie einfach nach, ob ein Code vorliegt:

$key2 = 'code2'.value('ST08_02');
if (dbGet($key2)) {
  html('Eintrag liegt vor');
} else {
  html('Eintrag liegt noch nicht vor');
}
by s157289 (180 points)
Damit kann ich doch nicht abgleichen, ob es in ST08_01 einen Code gibt, der genau gleich mit einem Code von ST08_02 ist, oder? Ich sehe nur, ob ein Code vorliegt.
by SoSci Survey (304k points)
Sie sehen, ob genau der Code schonmal vorliegt, den jemand eingegeben hat. Das ist m.E. genau das, was Sie haben möchten.

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

...