Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste ÜberarbeitungBeide Seiten der Revision | |||
de:create:filter-boolean [04.10.2011 21:54] – angelegt admin | de:create:filter-boolean [11.11.2014 23:10] – Aktualisierung admin | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Mehrere Bedingungen verknüpfen ====== | ====== Mehrere Bedingungen verknüpfen ====== | ||
- | Falls mehrere Bedingungen verknüpft werden | + | Eventuell müssen für einen Filter ([[filters|Filterfragen und Filter]]) |
+ | |||
+ | * Hat der Befragte die Option "eher unwichtig" | ||
+ | * Hat der Befragte angegeben, ein Auto zu besitzen **und** handelt es sich dabei um einen Benziner? | ||
+ | * Nutzt der Befragte **weder** Nachrichten im Fernsehen **noch** in der Zeitung? | ||
+ | * Kauft der Teilnehmer -- laut einer Mehrfachauswahl -- üblicherweise Schokolade **und** Milchprodukte? | ||
+ | |||
+ | Bei der Verknüpfung | ||
+ | |||
+ | * Der UND-Operator ('' | ||
+ | * Der ODER-Operator ('' | ||
+ | * Der NOT-Operator ('' | ||
+ | |||
+ | **Wichtig: | ||
+ | |||
+ | <code php> | ||
+ | (value(' | ||
+ | (value(' | ||
+ | </ | ||
- | **Wichtig: | ||
===== Bedingungen mit UND verknüpfen ===== | ===== Bedingungen mit UND verknüpfen ===== | ||
- | Angenommen, der Benutzer soll -- wenn er einen Computer hat (TF02_01 hat den Wert 2, vgl. Abbildung) und wenn er ein Handy besitzt (TF02_03 hat ebenfalls den Wert 2) gefragt werden, ob er schon einmal Bilder, Klingeltöne, | + | Angenommen, der Benutzer soll gefragt werden, ob er schon einmal Bilder, Klingeltöne, |
{{scr.filters.example_checkbox.png? | {{scr.filters.example_checkbox.png? | ||
- | In diesem Fall müssten folgende beide Bedingungen | + | Die einzelnen |
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Zwischen diese beiden Bedingungen wird nun ein '' | ||
+ | |||
+ | <code php> | ||
+ | (value(' | ||
+ | </ | ||
- | * '' | + | In diesem Fall wären die inneren Klammern nicht notwendig, weil das '' |
- | * '' | + | |
- | Im Filter | + | Im IF-Filter |
<code php> | <code php> | ||
Zeile 24: | Zeile 49: | ||
</ | </ | ||
- | Zur Sicherheit wurden beide Einzel-Bedingungen hier nochmal in runde Klammern gesetzt. In diesem Fall wäre das nicht notwendig, weil das '' | + | Wenn die Klammer-Struktur |
- | + | ||
- | Wenn die Klammer-Struktur nicht mehr übersichtlich ist, kann man auch problemlos mehrere Zeilen verwenden. Folgender Code hat exakt dieselbe Funktion wie das Beispiel oben: | + | |
<code php> | <code php> | ||
Zeile 38: | Zeile 61: | ||
Spätestens, | Spätestens, | ||
+ | |||
===== Die eine ODER andere Bedingung erfüllt ===== | ===== Die eine ODER andere Bedingung erfüllt ===== | ||
- | Folgendes Beispiel zeigt eine Überprüfung, | + | Folgendes Beispiel zeigt eine Überprüfung, |
<code php> | <code php> | ||
Zeile 47: | Zeile 71: | ||
(value(' | (value(' | ||
(value(' | (value(' | ||
- | (value(' | + | (value(' |
- | (value(' | + | |
) { | ) { | ||
- | html('< | + | |
+ | | ||
} else { | } else { | ||
- | // Keins ausgewählt: | + | // Keines |
goToPage(' | goToPage(' | ||
} | } | ||
Zeile 58: | Zeile 82: | ||
**Tipp:** Drei oder vier Items einer Frage kann man so noch abfragen. Aber sobald es mehr Items werden, gibt es eine elegantere Lösung. Diese wird vorgestellt in dem Kapitel [[filter-itemcount|Prüfen, | **Tipp:** Drei oder vier Items einer Frage kann man so noch abfragen. Aber sobald es mehr Items werden, gibt es eine elegantere Lösung. Diese wird vorgestellt in dem Kapitel [[filter-itemcount|Prüfen, | ||
+ | |||
===== Prüfen ob eine Auswahl den einen ODER anderen Wert hat ===== | ===== Prüfen ob eine Auswahl den einen ODER anderen Wert hat ===== | ||
Zeile 92: | Zeile 117: | ||
</ | </ | ||
- | Eine Alternative für eine größere Anzahl von Werten bieten Arrays in Verbindung mit der Funktion '' | + | Eine Alternative für eine größere Anzahl von Werten bieten |
<code php> | <code php> | ||
if (in_array(value(' | if (in_array(value(' | ||
question(' | question(' | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Prüfung, ob eine Bedingung NICHT zutrifft ===== | ||
+ | |||
+ | Mit dem NICHT-Operator ('' | ||
+ | |||
+ | <code php> | ||
+ | if (not (value(' | ||
+ | goToPage(' | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Allerdings wird für diesen Filter wohl eher der Ungleich-Vergleichsoperator ('' | ||
+ | |||
+ | <code php> | ||
+ | if (value(' | ||
+ | goToPage(' | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Und wenn man weiß, dass '' | ||
+ | |||
+ | <code php> | ||
+ | if (value(' | ||
+ | goToPage(' | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Es gibt aber durchaus Fälle, in denen der NICHT-Operator hilfreich ist. In Anlehnung an das ODER-Beispiel von oben: Wenn der Befragte weder PC noch DSL-Anschluss oder Handy besitzt, soll er direkt ans Ende des Fragebogens geschickt werden: | ||
+ | |||
+ | <code php> | ||
+ | if (!( | ||
+ | (value(' | ||
+ | (value(' | ||
+ | (value(' | ||
+ | )) { | ||
+ | goToPage(' | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Der einzige Unterschied zum obigen ODER-Beispiel ist das Ausrufezeichen ('' | ||
+ | |||
+ | Übrigens gibt es auch für das Rechnen mit dem NICHT-Operator ein mathematisches Distributivgesetz. Der folgende Filter hat denselben Effekt wie der vorhergehende: | ||
+ | |||
+ | <code php> | ||
+ | if ( | ||
+ | (value(' | ||
+ | (value(' | ||
+ | (value(' | ||
+ | ) { | ||
+ | goToPage(' | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Und natürlich kann man auch einfach den '' | ||
+ | |||
+ | <code php> | ||
+ | if ( | ||
+ | (value(' | ||
+ | (value(' | ||
+ | (value(' | ||
+ | ) { | ||
+ | // Nichts tun | ||
+ | } else { | ||
+ | goToPage(' | ||
} | } | ||
</ | </ |