0 votes
in SoSci Survey (dt.) by s228643 (120 points)

Liebes Support-Team,

in meiner Studie wird ein Lernplaner verwendet, welcher von den Studierenden zwei Mal am Tag ausgefüllt werden muss (Morgens und Abends).
Der Morgenteil steht von 06:00 - 15:00 Uhr zur Verfügung. Dann ist von 15:00 - 16:00 Uhr eine Unterbrechung eingebaut, und der Abendteil steht von 16:00 - 02:00 Uhr zur Verfügung.

Code für Unterbrechung im Morgenteil:

option('backbutton', false);
// Prüfen, wie viel Zeit seit Beginn des Befragung vergangen ist
// Falls es weniger als 1 Stunde ist (1 * 3600 Sekunden), wird das Interview unterbrochen
if (caseTime('begin') < 1 * 3600) {
  text('TA02_01'); // Verabschiedung zum ersten Teil anzeigen
  option('resume', true); // Hinweis auf fortgesetztes Interview verhindern
  option('nextbutton', false); // Weiter-Knopf ausblenden (Interview unterbrechen)
} else {
  // Fortschrittsbalken für Abendplaner anpassen
  option ('progress', 0);
  // Ist der Teilnehmer nach 1 Stunde zurückgekehrt? Dann geht es nun direkt weiter
  goToPage('next');
}

Es wird kein zusätzlicher Code im Abendteil zur Fortführung genutzt.

Nun haben die Studierenden im Morgenteil die Möglichkeit, anzugeben, ob sie für heute was geplant haben. Wenn sie dort Nein anklicken, gelangen sie direkt zum Ende des Morgenteils.
Für diesen Fall und auch für den Fall, wenn Studierende vergessen haben, den Morgenteil auszufüllen, wird ein zusätzlicher Lernplaner "Nur Abends" versendet. Dies ist ein gesonderter Fragebogen. Der Fall oben beschreibt einen Fragebogen, welcher zuammenhängt und nur durch die Unterbrechung "getrennt" wird.

Code zu Beginn das Lernplaner "Nur Abends":

if ((time() < strtotime('16:00:00')) || (time() > strtotime('+1 days 02:00:00'))) {
  text('Sperrung_Abendteil');
  buttonHide();
  pageStop();
}

Für den zweiten Fall wurden häufiger Probleme beschrieben, dass sie den Link zum Fragebogen nicht öffnen konnten.
Allerdings kam nun auch vermehrt das Problem auf, dass im zusammenhängenden Lernplaner, welcher oben zuerst beschrieben wurde, der Abendteil oft nicht angezeigt wird, sondern stattdessen auch hier der Link nicht zu öffnen ist oder der Morgenteil angezeigt wird.

Gibt es hier Fehler in der Codierung? Oder geht es um Einstellungen bei den Serienmails?

Bei den Serienmails für den zusammenhängenden Fragebogen wird eine Mail am Morgen und eine Mail am Abend versendet.
Die Mail am Abend ist als Erinnerung zur Mail am Morgen eingestellt und als einmalig auszufüllen mit personalisiertem Link eingestellt.
Dieser wird denjenigen zugesandt, die die Befragung abgeschlossen haben, oder den Fragebogen aufgerufen, aber nicht abgeschlossen haben.

Die Serienmail für den einzelnen Fragebogen "Nur Abends" ist ebenfalls als Erinnerungsmail zur Morgen-Mail eingestellt, jedoch als neue Erhebungswelle angegeben. Dieser Fragebogen wird auch als einmalig auszufüllen mit personalisiertem Link eingestellt. Den Fragebogen erhalten diejenigen, die den Fragebogen nicht aufgerufen haben.

Ich freue mich sehr über eine Einschätzung und Unterstützung von Ihnen!

Herzliche Grüße

1 Answer

0 votes
by SoSci Survey (328k points)

Spontan fällt mir folgender Code auf:

(time() > strtotime('+1 days 02:00:00')

Das kann nie sein, denn hier wird überprüft, ob die (aktuelle Zeit) größer ist als die (aktuelle) Zeit plus 1 Tag um 2 Uhr.

Was auch nur bedingt sinnvoll ist:

(caseTime('begin') < 1 * 3600)

Hier wird geprüft, ob der Start der Erhebung weniger als eine Stunde zurück liegt. Wenn man den Fragebogen um 8 Uhr morgens aufruft, wäre das schon um 9 Uhr der Fall. Meines Erachtens wäre die Arbeit mit fixen Zeiten da sinnvoller.

Für den zweiten Fall wurden häufiger Probleme beschrieben, dass sie den Link zum Fragebogen nicht öffnen konnten.

Es geht um die "Sperrung Abendteil"? Oder um einen anderen Fehler?

oder der Morgenteil angezeigt wird.

Könnte es sein, dass der Link einfach erst abends aufgerufen wird (obwohl die Mail schon morgens verschickt wurde)?

by SoSci Survey (328k points)
Sie haben das debug($h) wieder aus dem Code genommen? Genau diese Info brauche ich aber noch, um das Problem nachzuvollziehen.

Ob Sie $h oder $H schreiben, ist egal. Wichtig ist das große "H" im date()-Befehl.

Ergänzen Sie in Ihrem Code gerne noch ein paar mehr debug()s.


$H = (int)date('H');
debug($H);

if ($H == 15) {
  debug('Filter H15');
  text('Sperrung_Morgenteil'); // Verabschiedung zum ersten Teil anzeigen;
  option('resume', true); // Hinweis auf fortgesetztes Interview verhindern;
  option('nextbutton', false); // option('backbutton', false) Weiter-Knopf ausblenden (Interview unterbrechen);
}
if (($H >= 16) || ($H <= 2)) {
  debug('Filter H16');
  goToPage('next');
}
{
  debug('Abschnitt buttonHide()');
  // Keine Knöpfe anzeigen, sonst wäre es keine richtige Verabschiedung
  buttonHide();
}
{
  debug('Abschnitt progress');
  // Fortschrittsbalken für Abendplaner anpassen;
  option ('progress', 0);
}
by s228643 (120 points)
Die Weiterleitung zum Abendteil funktioniert nun. VIELEN VIELEN DANK! Ohne Ihre Unterstützung hätte ich das nicht mehr hinbekommen.

Das einzige, was nun noch "fehlerhaft" ist, ist dass auf der ersten Seite des Abendteils ebenso der Text zum Ende vom Morgenteil angezeigt wird. Es wird also der Text vom Ende des Morgenteils angezeigt und darauf folgt auf dieser Seite noch der Beginn-Text zum Abendteil.
Kann man dies noch anpassen?

Dass die Weiterleitung nun funktioniert ist zuerst einmal das Wichtigste und sehr erleichternd - vielen herzlichen Dank!
by SoSci Survey (328k points)
>  dass auf der ersten Seite des Abendteils ebenso der Text zum Ende vom Morgenteil angezeigt wird

Vermutlich steht der auf der Fragebogen-Seite noch oberhalb vom goToPage() - also über dem PHP-Code auf der Seite? Schieben sie ihn man nach unten.
by s228643 (120 points)
edited by s228643
Leider funktioniert der Code doch noch immer nicht.

Es gibt zu Beginn des Fragebogens eine Filterfrage, welche abfragt, ob man heute Ziele hat. Wenn man dies verneint, wird man direkt zur letzten Seite des Morgenteils geleitet (wo auch der Code enthalten ist).
Hier wird nun auch nach 16 Uhr noch der Sperrungstext angezeigt. Das heißt, hier funktioniert die Weiterleitung zum Abendteil nicht.

Die Einstellung der Filterfrage ist wie folgt: Wenn Option "Nein", dann innerhalb des Fragebogens springen -> Folgende Seitenabfolge verwenden: EndeM,AnfangA-EndeA

Oder muss hier nur EndeM rein? Verläuft das dann automatisch?

In der Testversion innerhalb des Fragebogens funktioniert beides. Leider aber im richtigen Ausfüllen des Fragebogens nicht.

Oder muss in dann zu einer Seite davor springen, also eine Seite vor Ende des Morgenteils und damit auch der Codierung für die Sperrung?

Bei der Variante, wenn man Ziele eingegeben hat und den Morgenteil ganz normal ausgefüllt hat, funktioniert die Weiterleitung in den Abendteil.
by SoSci Survey (328k points)
> Hier wird nun auch nach 16 Uhr noch der Sperrungstext angezeigt.

Bitte sehen Sie sich für diese Konstellation nochmal die Debug-Information an.

> Die Einstellung der Filterfrage ist wie folgt: Wenn Option "Nein", dann innerhalb des Fragebogens springen -> Folgende Seitenabfolge verwenden: EndeM,AnfangA-EndeA

Anstatt einer Seitenabfolge sollte es eigentlich ausreichen, wenn Sie "nur" zur Seite "EndeM" springen. Eine Seitenabfolge erhöht die Komplexität hier nur unnötig.

> In der Testversion innerhalb des Fragebogens funktioniert beides. Leider aber im richtigen Ausfüllen des Fragebogens nicht.

Es ist dieselbe Technik, welche hier greift. Wenn es unterschiedlich funktioniert, dann muss das an weiteren Filtern und/oder Einstellungen liegen. Bitte prüfen Sie in einem betroffenen Fall, was dort noch an Filtern aktiv wurde.

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

...