Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision |
de:create:functions:registervariable [03.08.2017 13:10] – Ergänzungen zum Zusammenspiel mit isset() admin | de:create:functions:registervariable [03.08.2017 13:13] – [Verwendung mit isset()] admin |
---|
===== Verwendung mit isset() ===== | ===== Verwendung mit isset() ===== |
| |
Viele Beispiele in der Anleitung verwenden ''registerVariable()'' zusammen mit der PHP-Funktion ''[[http://php.net/manual/de/function.isset.php|isset()]]'', um eine mehrfache Randomisierung zu vermeiden -- zum Beispiel wenn die Fragebogen-Seite nach dem "Weiter" erneut angezeigt wird, weil noch Antworten fehlen. | Viele Beispiele in der Anleitung verwenden ''registerVariable()'' zusammen mit der PHP-Funktion ''[[http://php.net/manual/de/function.isset.php|isset()]]'', um eine mehrfache [[de:create:randomization|Randomisierung]] bzw. [[:de:create:rotation|Rotation]] zu vermeiden -- zum Beispiel wenn die Fragebogen-Seite nach dem "Weiter" erneut angezeigt wird, weil noch Antworten fehlen. |
| |
Die Funktion ''isset()'' ermittelt, ob eine PHP-Variable bereits vorher definiert wurde. Damit kann man vermeiden, dass z.B. eine Liste neu erstellt udn gemischt wird, wenn sie schon vorher definiert wurde. | Die Funktion ''isset()'' ermittelt, ob eine PHP-Variable bereits vorher definiert wurde. Damit kann man vermeiden, dass z.B. eine Liste neu erstellt udn gemischt wird, wenn sie schon vorher definiert wurde. |
**Wichtig:** Der Inhalt der Variable wird __nicht__ im Datensatz gespeichert und die PHP-Variable wird beim Erreichen der "letzten Seite" (Abschluss des Fragebogens) gelöscht. Falls der Inhalt der Variable (z.B. die Reihenfolge einer Rotation) für die Auswertung relevant ist, muss man sie mittels ''[[:de:create:functions:put]]'' explizit im Datensatz speichern. | **Wichtig:** Der Inhalt der Variable wird __nicht__ im Datensatz gespeichert und die PHP-Variable wird beim Erreichen der "letzten Seite" (Abschluss des Fragebogens) gelöscht. Falls der Inhalt der Variable (z.B. die Reihenfolge einer Rotation) für die Auswertung relevant ist, muss man sie mittels ''[[:de:create:functions:put]]'' explizit im Datensatz speichern. |
| |
**Wichtig:** Bei der Verwendung von ''registerVariable()'' muss man sich bewusst sein, dass die regsitrierte Variable für das komplette restliche Interview definiert ist. Wenn man also die Kombination ''registerVariable()'' und ''isset()'' nochmal an anderer Stelle verwenden möchte, sollte man dafür tunlicht eine andere Bezeichnung für die Variable wählen. Zum Beispiel ''$itemsEL'' statt (nur) ''$items''. | **Wichtig:** Bei der Verwendung von ''registerVariable()'' muss man sich bewusst sein, dass die registrierte Variable für das komplette restliche Interview definiert ist. Wenn man also die Kombination ''registerVariable()'' und ''isset()'' nochmal an anderer Stelle verwenden möchte, sollte man dafür tunlicht eine __andere Bezeichnung für die Variable__ wählen. Zum Beispiel ''$itemsAB'' im ersten PHP-Code und ''$itemsBC'' im zweiten. |
| |
Hier ein Beispiel, bei welchem die Items einer Frage gezielt gemischt werden: | Hier ein Beispiel, bei welchem die Items einer Frage gezielt gemischt werden: |
| |
Die Variable ''$items'' ist fortan auf jeder weiteren Seite im Fragebogen in jedem PHP-Code definiert. Würde man denselben PHP-Code auf einer weiteren Seite platzieren, dann würde ''isset($items)'' das Ergebnis ''true'' (trifft zu) liefern, die Verneinung mit dem Ausrufezeichen ''!isset($items)'' entsprechend ''false'' (trifft nicht zu). Und damit würde die Klammer nicht mehr ausgeführt, selbst wenn die Variable ''$items'' beim zweiten Mal ganz anders verwendet werden sollte. | Die Variable ''$items'' ist fortan auf jeder weiteren Seite im Fragebogen in jedem PHP-Code definiert. Würde man denselben PHP-Code auf einer weiteren Seite platzieren, dann würde ''isset($items)'' das Ergebnis ''true'' (trifft zu) liefern, die Verneinung mit dem Ausrufezeichen ''!isset($items)'' entsprechend ''false'' (trifft nicht zu). Und damit würde die Klammer nicht mehr ausgeführt, selbst wenn die Variable ''$items'' beim zweiten Mal ganz anders verwendet werden sollte. |
| |
| Dieses Beispiel ist dem Kapitel [[:de:create:rotation]] entnommen. Dort finden Sie auch Beispiele zu weiteren Einsatzmöglichkeiten. |
| |
| |
===== Rotation von Inhalten ===== | ===== Rotation von Inhalten ===== |
| |
4 Fragen ("AB01" bis "AB04") sollen zusammen mit 4 zugehörigen Textbausteinen ("text1" bis "text4") angezeigt werden -- aber in zufälliger Reihenfolge. Dafür wird auf Seite 1 des Fragebogens ein Array gemischt und via ''registerVariable()'' für die folgenden Seiten verfügbar gemacht. Details s. Kapitel [[:de:create:rotation|Rotation]]. | 4 Fragen ("AB01" bis "AB04") sollen zusammen mit 4 zugehörigen Textbausteinen ("text1" bis "text4") angezeigt werden -- aber in zufälliger Reihenfolge. Dafür wird auf Seite 1 des Fragebogens ein Array gemischt und via ''registerVariable()'' für die folgenden Seiten verfügbar gemacht. Details s. Kapitel [[:de:create:rotation]]. |
| |
<code php> | <code php> |