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 zusammen,
Ich möchte für eine Untersuchung eine Tagebuchstudie durchführen und bin dank diesem Forum auch schon weitergekommen, verzweifel aber an einer Aufgabe:
Die Probanden werden über einen Link rekrutiert und dann müssen sie sich über ein opt.In anmelden. Zuvor werden sie noch einer Gruppe zugewiesen (KG; EG gut; EG schlecht) und bekommen dementsprechend einen anderen Opt.In, damit sie unterschieden werden können. Anschließend sollen sie eine Einladung zu einer allgemeinen Umfrage bekommen, was ich soweit hinbekommen habe.
Danach sollen sie aber jeden Tag eine Einladung (für 14 Tage), passend zu ihrere Gruppe, bekommen, in der sie dann ihr "Tagebuch" führen. Daran scheitre ich momentan...

Vielen Dank für die Hilfe im voraus.

in SoSci Survey (dt.) by s109880 (190 points)

1 Answer

0 votes

Danach sollen sie aber jeden Tag eine Einladung (für 14 Tage), passend zu ihrere Gruppe, bekommen, in der sie dann ihr "Tagebuch" führen. Daran scheitre ich momentan...

Die Funktion mailSchedule() haben Sie bereits gefunden? Im Prinzip müssen Sie nach dem Opt-In nur 14-mal diese Befehl aufrufen und jeweils den Versand für eine andere Serienmail planen. Details gerne, wenn Sie die Problematik spezifizieren.

by SoSci Survey (89.7k points)
Also ... wenn Sie das mailSchedule() direkt nach der Opti-In-Frage platzieren (also auf der Seite danach, hoffe ich), dann müssen Sie auch die Personenkennung mit reinnehmen. Sonst klappt es nicht.

if (value('A102') == 1) {
  $id = value('A101');
  for ($i=1; $i<=14; i++) {
    $mail = $i + 1;
    mailSchedule($id, $mail, strtotime('+'.$i.' day'));
  }
} elseif (value('A102') == 2) {
// u.s.w.
Vielen vielen dank!

Letzte Frage: "+1" muss ich dann durch die erste ID der Serienmail ersetzen?
Die Variable $i zählt von 1 bis 14. Wenn Sie +1 rechnen, bekommen Sie die Nummern 2 bis 15 als Serienmail-IDs. Wenn die erste Serienmail der zweiten Gruppe die Nummer 1 hat, würden Sie in Gruppe 2 also +15 rechnen.
Aber dann macht die Definition von $i davor ja keinen Sinn. Wenn ich das richtig verstehe definiert "for ($i=1; $i<=14; i++)" $i ja nur bis 14. Also wäre ID 14 ja gar nicht möglich? Ich kann "ihn" doch einfach hochzählen lassen, von 2-15 und dann für Gruppe 2 16-30 usw.... Wofür brauche ich jetzt die "+1". Die verkompliziert das ganz doch nur.
> Wofür brauche ich jetzt die "+1". Die verkompliziert das ganz doch nur.

Sie brauchen ja nicht nur die ID der Serienmail, sondern auch die Tage. Das $i wird deshalb auch im strtotime() verwendet.

> ja nur bis 14. Also wäre ID 14 ja gar nicht möglich?

Ähm ... doch, wenn $i=13 ist, dann ist $i+1=14. Was nicht möglich ist, ist die ID 1. Wenn ich Ihren Code oben korrekt interpretiere, dann haben Sie diese anderweitig verwendet.
...