0 votes
ago in SoSci Survey (dt.) by s337594 (110 points)
edited ago by s337594

Guten Tag,

wir führen eine mehrwellige Tagebuchstudie mit vier Messzeitpunkten durch. Dabei möchten wir gerne automatisierte Serienmails für den Versand verwenden.

In dem 1. Fragebogen, in dem auch die SERIAL Kennung erhoben wird, fragen wir nach einem Datum. Dieses Datum soll verwendet werden, um den Messzeitpunkt des 2.Fragebogens zu personalisieren.

Ist es möglich, dass danach die Serienmails zum 2., 3. und 4. Fragebogen automatisiert zu individuellen Zeitpunkten abhängig von der Datumsangabe der Teilnehmenden (Platzhalter plus 8 Tage) im 1. Fragebogen versendet werden? Bislang ist vorgesehen, dass die Kontaktdaten für uns nicht im Fragebogen hinterlegt werden, sondern ausschließlich getrennt über SoSciSurvey gespeichert werden.

Ist es möglich, diesen Fall mit PHP zu programmieren?

Derzeit habe ich es so versucht, dass das Datum (Variable PI01_01) plus 8 Tage eingegeben wird für den Versand der 2. vorbereiteten Serienmail, auf einer der letzten Seiten des ersten Fragebogens mit PHP Code:
mailSchedule(false, 2, strtotime('PI01_01' +'8 day'))

Vielen Dank im Voraus für Ihre Unterstützung!

1 Answer

0 votes
ago by SoSci Survey (352k points)

Sie sind schon nahe dran - nur dürfen Sie nicht versuchen, dass PHP direkt Zeiten addiert, sondern das muss strtotime() für Sie übernehmen. Also statt

mailSchedule(false, 2, strtotime('PI01_01' +'8 day'));

mailSchedule(false, 2, strtotime('PI01_01 + 8 days'));

Und weil PI01_01 kein gültiges Datum ist, müssen Sie noch value()verwenden, und den Punkt (.), welcher in PHP Strings zusammenfügt.

mailSchedule(false, 2, strtotime(value('PI01_01').' + 8 days'));

Ich würde es noch ein wenig aufteilen.

$startDate = value('PI01_01');
mailSchedule(false, 2, strtotime($startDate.' + 8 days'));

Beachten Sie, dass PHP hier mit dem Punkt nur einen String erstellt, der das "+ 8 days" enthält, und diesen dann an strtotime() übergibt.

Womöglich wird auch das noch nicht auf Anhieb funktionieren, wenn PI01_01 Den Start-Zeitpunkt nicht im richtigen Format enthält. Am besten wäre "YYYY-MM-DD HH:MM:SS". Was Sie da genau im Datensatz haben, sehen Sie durch

debug(value('PI01_01'));

Falls Sie nur den Tag abfragen, würden Sie im String auch noch die Uhrzeit ergänzen.

$startDate = value('PI01_01');
mailSchedule(false, 2, strtotime($startDate.' 08:00:00 +8 days'));

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

...