0 votes
in SoSci Survey (dt.) by s109880 (200 points)

Liebes SoSci Team,
ich bin mit meiner Tagebuch-Studie jetzt in die Pretestphase gegangen und habe auch gleich den ersten Fehler:
> Dieses Interview wurde nicht in Verbindung mit einer Serienmail begonnen, daher kann mailSchedule() den passenden Adressaten nicht ermitteln.

Dieser tritt bei der Anmeldung auf, nachdem sich die Leute über diesen Befehl nach der Zuordnung einer Gruppe angemeldet haben:

if (value('A102') == 1) {
question('A101');
} elseif (value('A102') == 2) {
question('A104');
} elseif (value('A102') == 3) {
question('A103');
}

Auf der nächsten Seite dann:

mailSchedule(false, 1);

Vielen dank für die Hilfe!
LG Luten

PS: ich habe eine normale Umfrage runde gestartet, da mehrer Mails verschickt werden!

1 Answer

0 votes
by SoSci Survey (328k points)

Damit mailSchedule() funktioniert, muss SoSci SUrvey wissen, wer den Fragebogen da ausfüllt. Dafür gibt es zwei Möglichkeiten:

  • Sie lassen den ersten Parameter von mailSchedule() auf false - dann muss der Fragebogen aber eben über einen Serienmail-Link (z.B. infolge des Double-Opt-In) gestartet werden vgl. Mehrwellige Befragungen bei Selbstrekrutierung
  • Sie geben die Personenkennung des Teilnehmers explizit als ersten Parameter an. Wenn A101 bis A103 Opt-In-Fragen sind, dann bekommen Sie diese mit value('A101') bis value('A103'), wobei Sie das IF auf der "nächsten Seite" nochmal brauchen, damit Sie die richtige Frage auslesen.
by s109880 (200 points)
klasse vielen dank für die schnelle Antwort, dass hat schon mal geklappt!

Nach diesem kommen die Teilnehmer zu einem allgemeinen Frageboben (danach geht die Tagebuchstudie erst richtig los!) und hier kommt folgender Fehler:

There is an error in the PHP code:
Questionnaire Error: syntax error, unexpected '++' (T_INC), expecting ')'
line: 3

PHP code

001 if (value('A105_02') == 1) {
002   $id = value('A101');
003   for ($i=1; $i<=10; i++) {
004     $mail = $i + 1;
005     mailSchedule($id, $mail, strtotime('+'.$i.' day'));
006   }


ein Kollege von ihnen hatte mir mal folgenden Code für die Serienmails geschrieben:

if (value('A105_02') == 1) {
  $id = value('A101');
  for ($i=1; $i<=10; i++) {
    $mail = $i + 1;
    mailSchedule($id, $mail, strtotime('+'.$i.' day'));
  }
//+1 durch ID ersätzen
} elseif (value('A105_02') == 2) {
$id = value('A101');
  for ($i=11; $i<=20; i++) {
    $mail = $i + 1;
    mailSchedule($id, $mail, strtotime('+'.$i.' day'));
  }
} elseif (value('A105_02') == 3) {
$id = value('A101');
  for ($i=21; $i<=30; i++) {
    $mail = $i + 1;
    mailSchedule($id, $mail, strtotime('+'.$i.' day'));
  }
}


Vielleicht wissen sie da ja weiter, vielen dank schonmal!
by SoSci Survey (328k points)
Sie schrieben

for ($i=1; $i<=10; i++) {

Da fehlt lediglich ein Dollar-Zeichen vor dem letzten "i".

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

...