0 votes
in SoSci Survey (dt.) by s182967 (110 points)

Ich habe einen Fragebogen in zwei Teilen. Den ersten Teil des Fragebogens füllen die Teilnehmer zusammen mit der Versuchsleitung aus. Den zweiten Teil sollen sie 72 Stunden später zugeschickt bekommen. Allerdings gibt es auch die Option, dass stattdessen die Versuchsleitung 72 Stunden nach dem ersten Teil entsprechende Teilnehmer telefonisch erreicht und den zweiten Teil selbst ausfüllt. Insofern sollte im ersten Teil die Möglichkeit bestehen festzulegen, an welche E-Mail-Adresse der zweite Teil geschickt wird. Ich habe es mir so vorgestellt, dass die entsprechende Adresse in ein Textfeld eingegeben wird und dann in den PHP-Code eingebunden wird. Zwischen beiden Teilen habe ich eine Unterbrecherseite eingefügt. In dieser habe ich momentan folgenden PHP-Code stehen:

Ich habe also folgende Probleme:

  1. Der erste Teil des Fragebogens sollte (wenn möglich) nur für die Versuchsleitung zugänglich sein, der zweite Teil sollte aber immer nur an eine Person (die Versuchsleitung oder den Teilnehmer) geschickt werden, sodass ich annehme, dass ich hier mit Serienmailversand arbeiten muss. Ich bin mir allerdings unsicher, ob es möglich ist, somit zwei verschiedene Zugangsbeschränkungen innerhalb eines Fragebogens zu haben. Es ist in jedem Fall sehr wichtig, dass es sich um einen (und nicht mehrere) Fragebögen handelt, da im zweiten Teil die replace()-Funktion genutzt wird, um auf die Antworten im ersten Teil zurückzukommen.
  2. Zudem bin ich mir nicht sicher, wie ich die entsprechende E-mail in den Code einbinde? Ist es sinnvoll, hier noch mit mailresume() zu arbeiten oder kann ich auch eine Seriennummer verwenden? Die E-Mail-Adressen der Teilnehmer sind bereits durch einen vorhergehenden Fragebogen in der Adressliste eingespeichert.

Im Vorab schon vielen Dank für jede Hilfe!

by SoSci Survey (305k points)
ad 1) Eine Serienmail brauchen Sie für den Text ... für den Versand hingegen würde ich über mailSend() nachdenken: Damit ist die dynamische Anpassung der Adresse einfacher.

Allerdings müssen wir vorab erstmal klären: Haben Sie einen eigenen Mechanismus zur Zuordnung der Datensätze (z.B. einen Teilnehmercode) oder möchten sie das gerne via Serienmail-Personencode lösen? Davon ist nämlich abhängig, wie die beste Lösung für Sie aussieht.
by s182967 (110 points)
Genau, zu Anfang des Fragebogens wird ein personalisierter Teilnehmercode erstellt. Diesen blende ich dann auch nochmal auf der ersten Seite des zweiten Teils ein damit es nicht zu Verwechslungen kommt, wenn ich als Versuchsleitung die Teilnahmelinks an meine E-Mail-Adresse geschickt bekomme (bei den Fällen, wo ich den zweiten Teil über Telefon mit den jeweiligen Teilnehmern ausfülle).

1 Answer

0 votes
by SoSci Survey (305k points)

zu Anfang des Fragebogens wird ein personalisierter Teilnehmercode erstellt

Wenn die Zuordnung der Datensätze bereits damit gewähleistet ist, würde ich zu einer sehr einfachen Lösung raten, was die Mail angeht.

Wenn ich Sie korrekt verstehe, dann ist eigentlich nur die eine E-Mail erforderlich, die nach 72 Stunden verschickt werden soll - entweder an die befragte Person oder an die Versuchsleiter:in. Stimmt das?

Dann könnten Sie also eine einfache Auswahl machen

[ ] Ich nehme telefonisch teil -> Mail geht an Versuchsleiter
[ ] Ich will eine E-Mail, meine E-Mail-Adresse lautet: ___

Und auf Basis dieser Information können Sie dann problemlos mittels mailSend()eine E-Mail entweder an die Versuchsleiter:in oder an die angegebene Mailadresse verschicken. In der Mail können Sie per Platzhaltern auch noch den Versuchspersonencode eintragen.

by s182967 (110 points)
Vielen Dank!

Ich habe jetzt auf der Seite direkt vor der Unterbrecherseite Folgendes eingefügt:

<div>
  E-Mail-Adresse:
  <input type="text" name="email_C2" style="width: 160px" />
</div>

Ich kenne mich allerdings leider mit PHP nicht gut aus und wäre sehr dankbar, wenn Sie mir auch noch mit dem Code helfen könnten. Aktuell steht auf der Unterbrecherseite jetzt:

option('backbutton', false);

$email = readGET('email_C2', false);
if (trim($email) !== '') {
  $link = 'https://www.soscisurvey.de/MEIN_PROJEKT'.caseNumber();
  mailSend($email, 4, 60, $link);
}


if ((time() - $timepart1) < 60) {

option('resume', true);
option('nextbutton', false);
} else {
goToPage('next');

dropValue('email_C2');
}

Was ich damit möchte, ist, dass Serienmail 4 nach 60 Sekunden versendet wird (das werde ich zum Schluss mit 3*24*3600 ersetzen) und dass die E-Mail aus den Variablen mit dropvalue() entfernt wird. Der Versand der Mail klappt auch, allerdings wird noch eine Fehlermeldung angezeigt statt der zweite Teil des Fragebogens.
Mit https://www.soscisurvey.de/MEIN_PROJEKT meine ich, dass ich hier den Link für den Fragebogen eingegeben habe.
by SoSci Survey (305k points)
Sie können schon mit <input> und readGET() arbeiten. Aber damit können Sie z.B. keine Prüfung realisieren, ob die E-Mail-Adresse zumindest formell gültig ist. Ich würde stattdessen ein normales Eingabefeld und ein dropValue() empfehlen.

> allerdings wird noch eine Fehlermeldung angezeigt statt der zweite Teil des Fragebogens.

Posten Sie den Wortlaut der Fehlermeldung, dann kann ich dazu gerne Genaueres sagen.

Was ich jetzt schon mitteilen kann: Das dropValue() erwartet immer die Kennung einer Datensatz-Variable. Wenn Sie mit einer PHP-Variable  arbeiten, kann das nicht fuktionieren.

Mehr dazu: https://www.soscisurvey.de/help/doku.php/de:create:variables
by s182967 (110 points)
Ich habe mich jetzt doch für eine simple Lösung entschieden, da die Befragung langsam starten muss, d. h. ich sende den jeweiligen Link des Fragebogens zeitversetzt mithilfe eines externen Mail-Programms. Ich bedanke mich aber nochmal ganz herzlich 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

...