====== 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 [[:de:create:checks#individuelle_antwort-pruefung|individuelle Antwortprüfungen]]. * //Textbaustein// (optional)\\ Falls die Kennung eines Textbausteins angegeben wird (Anzulegen unter **Textbausteine und Beschriftung**), so wird dieser Textbaustein als Hinweis zu Beginn der wiederholten Seite angezeigt. Der Textbaustein wird dabei genauso formatiert wie andere Meldungen zu fehlenden/fehlerhaften Angaben. 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. Dies wird dadurch erreicht, dass bei der ersten Wiederholung eine interne Variable "IV01_01" auf den Wert 2 gesetzt wird. Bitte legen Sie die [[:de:create:questions:internal|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'); } }