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

Liebes Support-Team,

ich würde gerne Daten aus einer Excel-Datei mit einem Fragebogen auf SoSci Survey verknüpfen und die Informationen aus der Excel-Datei im Fragebogen anzeigen lassen.

Neben Vorname, Nachname, E-Mail und Geschlecht sollen noch mindestens zehn, evtl. auch noch mehr, Informationen aus der Excel-Datei mit dem Fragebogen verknüpft werden.

Grundlegend konnte ich die Verknüpfung der Daten aus der Excel-Datei mit dem Fragebogen bereits mit der Funktion panelData() herstellen, allerdings lassen sich mit dieser Funktion neben Vorname, Nachname, E-Mail und Geschlecht ja nur fünf weitere benutzerdefinierte Informationen verknüpfen.

Da ich aber deutlich mehr Informationen verknüpfen möchte, wollte ich mich erkundigen, ob es irgendeine Möglichkeit (sei es mit panelData() oder anders) gibt, mehr als diese fünf benutzerdefinierten Informationen mit dem Fragebogen zu verknüpfen?

Herzlichen Dank und viele Grüße!

1 Answer

0 votes
by SoSci Survey (316k points)

Die andere Möglichkeit läuft über die Datenbank für Inhalte, wie z.B. hier beschrieben: Daten a-priori zuspielen (bitte auch den Inhalt oberhalb der Überschrift in der Anleitung lesen).

Der Knackpunkt ist: Welche Kennung (Schlüssel) verwenden sie, um Daten und Teilnehmer:innen zuzuordnen. Das könnte z.B. die E-Mail-Adresse sein, die Sie per panelData() bekommen, oder eine eindeutige Nummer, die Sie im benutzerdefinierten Feld des Adresseintrags hinterlegen.

Sie bekommen dann mittels panelData() den passenden Schlüssel:

$entry = panelData();
$key = $entry['custom1'];

Und mit dbGet() die entsprechenden Daten:

$data = dbGet($key);
debug($data);
by s261495 (170 points)
Herzlichen Dank für die schnelle Antwort!

Ich habe meine Daten in der Datenbank für Inhalte hochgeladen und Ihren PHP-Code im Fragebogen eingefügt.
Ich erhalte aber immer die Fehlermeldung:
The function dbGet() requires a valid key, but instead got NULL.
Ich habe bereits auch den PHP-Code auf der von Ihnen verlinkten Seite ausprobiert, damit erhalte ich aber die gleiche Fehlermeldung.


Haben Sie eine Idee, woran das liegen könnte?

Vielen Dank und viele Grüße!
by SoSci Survey (316k points)
> The function dbGet() requires a valid key, but instead got NULL.

Haben Sie den Fragebogen denn über einen personalisierten Serienmail-Link gestartet? Und ist in dem entsprechenden Adresseintrag ein Schlüssel bei "Benutzerdefiniert 1" hinterlegt, den panelData() dann auslesen kann?
by s261495 (170 points)
Herzlichen Dank für den Tipp, jetzt hat es funktioniert.

Nun ist doch noch ein neues Problem aufgetaucht. Ich möchte die Daten aus der Excel-Tabelle in einem Fließtext (quasi als Vignette) anzeigen lassen. Da sich in SosciSurvey erstellte Textbausteine ja nicht mit dem hier genutzten PHP-Code verknüpfen lassen, habe ich den HTML-Code zum Anzeigen des Fließtextes wie folgt direkt in den PHP-Code eingefügt:

$entry = panelData();
$key = $entry['email'];
$data = dbGet($key);
debug($data);

html('
<div>
<div style="margin-top: 25px; padding: 15px; border: 3px solid #4F94CD; font-family:Arial; font-size: 100%;">

<b>Candidate A </b><br><br>

<U>Candidate A</U> is '.$data[0].' years old, '.$data[1].' and born in '.$data[2].'. <br>
His <U>CV</U> demonstrates '.$data[3].' levels of education and work experience. <br>
The <U>motivation letter</U> highlights his '.$data[4].' and contains '.$data[5].'. <br>
<U>'.$data[6].'</U> are included
<br><br>
');

html('
<div>
<div style="margin-top: 25px; padding: 15px; border: 3px solid #4F94CD; font-family:Arial; font-size: 100%;">
<b>Candidate B </b><br><br>

<U>Candidate B</U> is '.$data[7].' years old, '.$data[8].' and born in '.$data[9].'. <br>
His <U>CV</U> demonstrates '.$data[10].' levels of education and work experience. <br>
The <U>motivation letter</U> highlights his '.$data[11].' and contains '.$data[12].'. <br>
<U>'.$data[13].'</U> are included
<br><br>
');


Allerdings wird dadurch die Formatierung etwas verändert. (Im Original wird jeweils ein Rahmen um Candidate A und Candidate B gezogen,  bei der veränderten Formatierung ist der Rahmen von Candidate A deutlich länger, sodass der Rahmen von Candidate A auch den umrahmten Text von Candidate B umfasst. Ich hoffe, man kann einigermaßen nachvollziehen, was ich meine, leider kann man ja keine Bilder zur Veranschaulichung einfügen).

Haben Sie eine Idee, was ich am HTML-Code im PHP-Code ändern muss, damit der Text wie gewünscht formatiert wird?
by SoSci Survey (316k points)
> Da sich in SosciSurvey erstellte Textbausteine ja nicht mit dem hier genutzten PHP-Code verknüpfen lassen ...

Mit Platzhaltern ist auch das relativ einfach möglich.

> bei der veränderten Formatierung ist der Rahmen von Candidate A deutlich länger,

Meins Erachtens fehlt in Ihrem HTML-Code einfach das schließende </div> zum Rahmen, und zwar hier:

<U>'.$data[6].'</U> are included
<br><br>
</div>
');

Es ist übrigens schlechter Stil, Abstände mit <br><br> einzufügen. Ein <h2>Candidate A</h2> wäre die sauberere Lösung.

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

...