Inhaltsverzeichnis

repeatPage()

void repeatPage([string Textbaustein])

Die Funktion repeatPage() zeigt die vorhergehende Seite erneut an. Optional wird ein Textbaustein im Stil einer Fehlermeldung angezeigt. Anwendung findet die Funktion v.a. für individuelle Antwortprüfungen.

Diese Funktion ist vor allem dann sinnvoll, wenn die Angaben des Befragten auf Ihre Gültigkeit hin überprüft werden. Viele Überprüfungen kann man direkt in der Frage oder dem Item aktivieren (z.B. prüfen, ob alle Items einer Skala ausgefüllt wurden oder ob ein bestimmtes Textformat eingehalten wurde), aber manchmal muss man die Prüfung mittels PHP-Code selbst programmieren. Falls diese Prüfung negativ ausfällt, kann man mit text() einen Textbaustein mit passender Fehlermeldung anzeigen und den Teilnehmer anschließend mit repeatPage() zur vorigen Seite zurück schicken.

Wichtig: Damit repeatPage() korrekt funktioniert, muss die Prüfung auf ungültige Antworten zu Beginn der Fragebogenseite eingebaut werden, welche auf die geprüfte Frage folgt!

Beispiel 1

Im folgenden Beispiel soll der Befragte auf Seite 5 des Fragebogens genau eine von drei Texteingaben (AB01_01, AB01_02 oder AB01_03) ausfüllen. Im Textbaustein „error_1von3“ steht das noch einmal. Auf der Folgeseite, Seite Nr. 6, wird zur Prüfung folgender PHP-Code eingefügt:

$answered = getItems('AB01', 'valid');
if (count($answered) != 1) {
  repeatPage('error_1von3');
}

Beispiel 2

Mithilfe von repeatPage() ist es ebenso möglich, einmalig nachzuhaken, wenn der Befragte eine Frage nicht beantwortet. Im folgenden Beispiel wird überprüft, ob in der Auswahlfrage BB01 eine gültige Option gewählt wurde und ob die Items der Skala BC01 vollständig beantwortet wurden.

Wenn eine der Fragen nicht vollständig beantwortet wurde, wird der Textbaustein „error_missing“ angezeigt und die Seite wiederholt. Allerdings nur einmalig, was durch registerVariable(), die Variable $rPG6 und das isset() zu Beginn sichergestellt wird.

Wenn sich die Fragen auf Seite 6 befinden, muss der folgende PHP-Code auf Seite 7 ganz oben platziert werden.

// Nur wenn $repeatedPG6 noch nicht gesetzt ist, wird geprüft
if (!isset($rPG6)) {
  // Prüfen, ob in der Auswahl BB01 die Antwort fehlt (Code -9)
  $failBB01 = (value('BB01') == -9);
  // Prüfen, ob in der Skala BC01 Items unbeantwortet sind
  $failBC01 = (count(getItems('BC01', 'missing')) > 0);
 
  if ($failBB01 || $failBC01) {
    // Merken, dass Seite 6 wiederholt wird/wurde
    $rPG6 = true;
    registerVariable($rPG6);
    // Vorhergehende Seite erneut anzeigen
    repeatPage('error_missing');
  }
}