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!
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'); }
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. Dies wird dadurch erreicht, dass bei der ersten Wiederholung eine interne Variable „IV01_01“ auf den Wert 2 gesetzt wird. Bitte legen Sie die interne Variable vorab im Fragenkatalog an, und verwenden Sie im Code statt „IV01_01“ die Kennung Ihrer internen Variable. Wenn die Seite erneut aufgerufen wird, und die Variable den Wert 2 hat, wird die Antwortprüfung nicht mehr ausgelöst.
Wenn sich die Fragen auf Seite 6 befinden, muss der folgende PHP-Code auf Seite 7 ganz oben platziert werden.
// Nur wenn IV01_01 noch nicht gesetzt ist, wird geprüft if (value('IV01_01', 'code:ifany') != 2) { // 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 put('IV01_01', 2); // Vorhergehende Seite erneut anzeigen repeatPage('error_missing'); } }