Nächste Überarbeitung | Vorhergehende Überarbeitung |
de:create:functions:repeatpage [22.10.2014 20:31] – Ausgelagert aus functions-base admin | de:create:functions:repeatpage [15.05.2024 19:17] (aktuell) – [Beispiel 2] admin |
---|
====== repeatPage() ====== | ====== repeatPage() ====== |
| |
''void **repeatPage**([string Textbaustein])'' | ''void **repeatPage**([string //Textbaustein//])'' |
| |
Die Funktion ''repeatPage()'' zeigt die vorhergehende Seite erneut an. Optional wird ein Textbaustein im Stil einer Fehlermeldung angezeigt. | 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. | * //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. |
===== Beispiel 2 ===== | ===== 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. | 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 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. | Wenn sich die Fragen auf Seite 6 befinden, muss der folgende PHP-Code auf Seite 7 ganz oben platziert werden. |
| |
<code php> | <code php> |
// Nur wenn $repeatedPG6 noch nicht gesetzt ist, wird geprüft | // Nur wenn IV01_01 noch nicht gesetzt ist, wird geprüft |
if (!isset($rPG6)) { | if (value('IV01_01', 'code:ifany') != 2) { |
// Prüfen, ob in der Auswahl BB01 die Antwort fehlt (Code -9) | // Prüfen, ob in der Auswahl BB01 die Antwort fehlt (Code -9) |
$failBB01 = (value('BB01') == -9); | $failBB01 = (value('BB01') == -9); |
$failBC01 = (count(getItems('BC01', 'missing')) > 0); | $failBC01 = (count(getItems('BC01', 'missing')) > 0); |
| |
if ($failBB01 or $failBC01) { | if ($failBB01 || $failBC01) { |
// Merken, dass Seite 6 wiederholt wird/wurde | // Merken, dass Seite 6 wiederholt wird/wurde |
$rPG6 = true; | put('IV01_01', 2); |
registerVariable('rPG6'); | |
// Vorhergehende Seite erneut anzeigen | // Vorhergehende Seite erneut anzeigen |
repeatPage('error_missing'); | repeatPage('error_missing'); |