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

0 votes

Hallo,

ich würde gern für eine Befragung Informationen, die je Angeschriebenem bereits bekannt sind (bsp. Studiengang, Fakultät), als vordefinierte Variablen ex ante setzen und diese dann per Platzhalter mit dem Entrylink verknüpfen, um die betreffenden Informationen einzublenden (ähnlich der Funktion beim Versand personalisierter Serienmails zur Einladung).
Letzteres sollte mit replace() gehen, aber ich muss a) die Bezugsvariable erstmal im Set haben und b) den Verweis (ähnlich einem vlookup in Excel) hinbekommen.

Beispiel: Wenn ich Studenten nach der Wahrnehmung ihres Studiums frage (und als seine Uni über die Immatrikulationsdaten weiß, welchen Studiengang er an welcher Fakultät belegt):
"Wir würden Ihnen gerne einige Fragen zu Ihrem '%studium%'-Studium an der '%fakultaet%' Fakultät unserer Universität stellen." --> Matrikelnummer-/ entrylinkabhängig soll dann beim ersten Platzhalter Jura/BWL/Medizin etc. eingeblendet werden und beim zweiten "rechtswissenschaftlichen"/"wirtschaftswissenschaftlichen"/"medizinischen" etc.

Zu beachten dabei, dass ich die Informationen nicht in der Befragung selbst abfragen kann, also nicht über replace ('%...%', Q01_01, response) o.ä. auf eine Variable des Fragebogens beziehen kann.

Kann mir jemand einen Tip geben, wie ich dies bewerkstelligen kann?

Danke!

in SoSci Survey (dt.) by s016076 (110 points)
Wie möchten Sie den Teilnehmer denn identifizieren? Geben diese im Fragebogen ihre Matrikelnummer an?
Die Matrikelnummer ist nur als Beispiel gedacht... ich dankte an den Entrylink beim Versand von Einladungsmails, über den ich weiß, wer antwortet?

1 Answer

0 votes

ich dankte an den Entrylink beim Versand von Einladungsmails, über den ich weiß, wer antwortet?

In Ordnung - dafür bietet sich entweder die Serienmail-Funktion von SoSci Survey an oder die Seriennummer-Funktion. Da Sie die Mailadressen evtl. nicht extern verarbeiten möchten, tendenziell eher die Seriennummern.

Für das Zuspielen der Daten können Sie dann die Datenbank für Inhalte nutzen. Dort importieren Sie eine Tabelle mit der Seriennummer/Kennung als Schlüssel und den Nutzdaten in den weiteren Spalten. Und im Fragebogen können Sie die Daten dann mittels dbGet() abrufen:

$info = dbGet(caseSerial());
if (!$info) {
  // Fehlermeldung/Screenout
}
$alter = $info[0];
$name = $info[1];
by SoSci Survey (92.7k points)
edited by SoSci Survey
Danke schonmal; die Datenbank konnte ich bereits anlegen. Das mit dem Einblenden funktioniert aber nicht und wenn ich den Code reinkopiere, kommt eine Warnmeldung.
Habe auch noch andere Anleitungen durchgesehen, es funktioniert aber auch nicht.
Nach meinem (offensichtlich mangelhaften) Verständnis müsste doch durch
$key=caseSerial();
$info=dbGet($key);
replace ('%platzhalter%', '$info[0]', 'text');
zuerst gesagt werden "setze die Seriennummer als Schlüssel", dann "suche in der Datenbank nach der Seriennummer", und als drittes "ersetze den Platzhalter durch den Inhalt aus der Zeile hinter der gefundenen Seriennummer, wo in der Kopfzeile [Spezialfunktionen/Datenbank für Inhalte/Einträge in der Datenbank] die "0" drüber steht"; und das sollte dann überall erfolgen, wo im Fragebogen der Platzhalter steht.
Können Sie mir weiterhelfen, wo mein Denkfehler liegt?
In der letzten Zeile sind einmal zu oft Anführungszeichen - Sie wollen ja nicht den Text '$info[0]', sondern den Inhalt der Variable:

replace ('%platzhalter%', $info[0], 'text');

Aber wenn eine Fehlermeldung erscheint, dann passt wohl noch etwas nicht. Aber dafür müssten Sie erstmal verraten, wie die Fehlermeldung lautet?
Müsset in der Zeile in der Antwort oben
$info = $dbGet(caseSerial());
nicht das '$' weg? Also
$info = dbGet(caseSerial());
Doch :) Hiermit geändert.
...