====== Filterfragen (Frage-Filter) ======

Wenn die Antwort des Teilnehmer auf eine Frage Auswirkungen auf den weiteren Verlauf des Interviews haben soll, handelt es sich um eine Filterfrage. Sie können Filter entweder direkt in der Frage definieren (//Frage-Filter//, einfache Variante) oder unter **Fragebogen zusammenstellen** (//[[:de:create:php-filters|PHP-Filter]]//).


===== Frage-Filter definieren =====

Um einen Frage-Filter zu definieren, wählen Sie die Filterfrage im **Fragenkatalog** aus und klicken dann unter //Weitere Einstellungen// auf den Karteireiter //Filtefrage//. Ein Filter besteht aus zwei Teilen:

  * In der //Filterbedingung// geben Sie an, wann der Filter aktiv wird.
  * Die //Filterführung// bestimmt was passiert, wenn der Filter aktiv wird.

**Wichtig:** Die Funktion steht derzeit nur für Fragen vom Typ "Auswahl", "Dropdown-Auswahl", "Horizontale Auswahl" und "Mehrfachauswahl" zur Verfügung. Sie wird sukzessive auf weitere Fragetypen ausgeweitet.

{{ :de:create:scr.simple-filters.form.png?nolink |Formular zum definieren eines Frage-Filters}}

**Wichtig:** Damit der Filter funktioniert, müssen Filterfrage und das Element (eine andere Frage oder ein Text), welches von der Antwort beeinflusst wird, auf unterschiedlichen Seiten im Fragebogen stehen. Künftige Programmversionen werden auch Fragen auf derselben Seite unterstützten -- bis diese Funktionserweiterung verfügbar wird ist ein Rückgriff auf die Anleitung [[:de:create:dynamic]] möglich.

Sie können einen oder mehrere Filter für eine Frage definieren. Sobald ein Filter definiert und die Frage gespeichert wurde, wird sie im **Fragenkatalog** mit einem Symbol ({{::symbol.filter.png?nolink|Symbol für Filterfragen}}) markiert.

**Hinweis:** Ein Filter wird bereits mit dem Klick auf das Häkchen gespeichert, es ist nicht erforderlich, zusätzlich auch die Frage zu speichern. Allerdings wird die Anzeige in der Navigation erst aktualisiert, wenn die Frage gespeichert oder eine andere Frage aufgerufen wird.


===== Filterbedingung =====

Eine Filterbedingung kann entweder zutreffend sein (wahr) oder nicht (falsch).

Bei einem Frage-Filter bezieht sich die Filterbedingung jeweils nur auf die Antwort in der Filterfrage. Mit [[:de:create:php-filters|PHP-Filtern]] können Sie in der Filterbedingung auch mehrere Variablen verknüpfen ([[:de:create:filter-boolean]]).

Welche Varianten für die Filterbedingung zur Verfügung stehen, hängt vom Typ der Frage ab.


===== Filterführung =====

Für die Filterführung -- also das was passiert, wenn die Filterbedingung eintritt -- stehen einheitlich die folgenden Möglichkeiten zur Verfügung.


==== Frage oder Text anzeigen/ausblenden ====

Eine andere Frage oder ein Text, die/der im Fragenkatalog definiert wurde, soll in Abhängigkeit von der Filterbedingung angezeigt oder ausgeblendet werden.

**Hinweis:** Textbausteine, die unter **Textbausteine u. Beschriftungen** angelegt wurden, können mit dieser Filterbedingung nicht ein-/ausgeblendet werden.

Wählen Sie bei dieser Filterführung via Dropdown eine Frage oder einen Text aus dem Fragenkatalog aus, und geben Sie an ob diese/r bei zutreffender Filterbedingung angezeigt oder ausgeblendet werden soll.

{{ :de:create:scr.simple-filters.effect.png?nolink |Filterführung: Frage anzeigen}}

**Wichtig:** Das Element, das ein- oder ausgeblendet werden soll, muss unter **Fragebogen zsuammenstellen** bereits auf einer Seite im Fragebogen platziert worden sein. Sonst weiß SoSci Survey nicht, an welcher Stelle es das Element anzeigen soll. Außerdem darf es nicht auf derselben Fragebogen-Seite platziert sein, auf welcher sich die Filterfrage befindet (in Arbeit).


=== Anwendungsbeispiel ===

  * Auf Seite 1 des Fragebogens befindet sich eine Ja-Nein-Frage (Auswahl) FF01, ob der Befragte ein Smartphone besitzt.
  * Die Frage FF01 wird als Pflichtfrage definiert ("muss beantwortet werden"), denn sonst wird die Filterführung unnötig unsicher (was soll man tun, wenn keine Antwort gegeben wurde?).
  * Auf Seite 2 des Fragebogen (oder auf einer späteren Seite) haben Sie eine Frage FF02 platziert, welche Marke das Smartphone hat. Diese Frage soll nur dann angezeigt werden, wenn der Teilnehmer in FF01 "Ja" geantwortet hat.
  * In Frage FF01 wird unter //Weitere Einstellungen// -> //Filterfrage// ein Filter wie folgt definiert:
    * Filterbedingung:\\ Wenn eine der folgenden Optionen ausgewählt wurde ...\\ [x] Ja
    * Filterführung:\\ Frage oder Text anzeigen/ausblenden\\ [x] anzeigen (sonst ausblenden)\\ //Frage/Text:// FF02
  * Den Filter mit dem Häkchen bestätigen oder gleich Frage FF01 speichern ({{:button.save.png?nolink|Frage speichern}}).

Wenn nun bei Frage FF01 die Antwort "Nein, ich habe kein Smartphone" ausgewählt wird, dann wird die Frage FF02 auf der folgenden Seite ausgeblendet. Ansonsten wird sie regulär dort angezeigt, wo sie bei **Fragebogen zusammenstellen** platziert wurde.

Der Filter hätte __alternativ__ auch wie folgt definiert werden können:

  * Filterbedingung:\\ Wenn eine der folgenden Optionen ausgewählt wurde ...\\ [x] Nein
  * Filterführung:\\ Frage oder Text anzeigen/ausblenden\\ [x] ausblenden (sonst anzeigen)\\ Frage/Text: FF02

Die Filterführung bei positiver (oben) und negativer Formulierung (unten) hat die gleiche Funktion, vorausgesetzt die Filterfrage ist eine Pflichtfrage. Ansonsten muss man den Fall "-9 keine Antwort" explizit behandeln.

Falls mehrere Filter um die Anzeige der Frage FF02 konkurrieren, hat aus Ausblenden der Frage (egal ob durch einen positiven oder negativen Filter) Vorrang vor deren Anzeige. Wenn also ein Filter die Frage anzeigen möchte und ein anderer möchte sie ausblenden, dann wird die Frage im Interview __nicht__ angezeigt (ausgeblendet).


==== Einzelne Items einer Frage anzeigen/ausblenden ====

Es kann nicht nur eine komplette Frage ausgeblendet werden, sondern auch einzelne Items.

  * Es gelten dieselben Bedingungen wie für das anzeigen/ausblenden einer ganzen Frage: Die Frage muss im Fragebogen platziert werden, aber nicht auf derselben Seite wie die Filterfrage.
  * Solch ein Filter kann nur auf Fragen, nicht auf Texte Einfluss nehmen.


==== Seite(n) im Fragebogen anzeigen/ausblenden ====

Diese Filterführung sorgt dafür, dass komplette Seiten im Fragebogen übersprungen werden.

**Wichtig:** Geben Sie den Seiten zunächst eine [[:de:glossary#seitenkennung|Seitenkennung]], anhand derer Sie sich auf diese Seiten(n) beziehen. Falls Sie eine Seitennummer eingeben, wird automatisch eine Seitenkennung angelegt -- allerdings ist diese i.d.R. nicht so aussagekräftig wie eine manuell vergebene Seitenkennung.

=== Anwendungsbeispiel ===

Auf Seite 2 des Fragebogens wird der Teilnehmer in einer Mehrfachauswahl (FF03) gefragt, welche Online-Dienste er verwendet. Nur wenn "Facebook" ausgewähl wird, sollen die Seiten 5 bis 7 im Fragebogen abgearbeitet werden, welche die Facebook-Nutzung genauer abfragen.

  * Geben Sie unter **Fragebogen zusammenstellen** Seite 5 die Seitenkennung "fbStart".
  * Seite 7 bekommt die Seitenkennung "fbEnd".
  * Tragen Sie im **Fragenkatalog** in der Filterfrage FF03 einen Filter wie folgt ein:
    * Filterbedingung\\ Wenn eine der folgenden Optionen ausgewählt wurde ...\\ [x] Facebook
    * Filterführung\\ [x] Seite(n) im Fragebogen anzeigen/ausblenden\\ [x] anzeigen (sonst ausblenden)\\ //Seite(n):// fbStart-fbEnd
  * Bestätigen Sie den Filter mit einem Klick auf das Häkchen.

**Hinweis:** Es können eine oder mehrere Seite angegeben werden, die angezeigt bzw. ausgeblendet werden sollen. Mehrere Seiten können entweder durch ein Komma getrennt angegeben werden ("pg01, pg02, pg03, pg05") und/oder mit einem Bindestrich als Seitenbereiche von-bis ("pg01-pg03, pg05").

Auch in diesem Beispiel wäre alternativ zur positiven Formulierung des Filters eine negative Formulierung möglich:

  * Filterbedingung\\ Wenn die folgenden Optionen __nicht__ alle markiert wurden ...\\ [x] Facebook
  * Filterführung\\ [x] Seite(n) im Fragebogen anzeigen/ausblenden\\ [x] ausblenden (sonst anzeigen)\\ //Seite(n):// fbStart-fbEnd

Es versteht sich von selbst, dass nur solche Seiten ausgeblendet werden können, die weiter hinten im Fragebogen liegen als die Seite mit der Filterfrage.


==== Innerhalb des Fragebogens springen ====

Diese Filterführung springt nach dem Klick auf "Weiter" direkt zu der festgelegten Seite im Fragebogen. Hier wird wieder eine [[:de:glossary#seitenkennung|Seitenkennung]] angegeben.

**Wichtig:** Nachdem die Seite beantwortet wurde geht es ab dort regulär weiter -- das Interview springt __nicht__ zur Seite mit der Filterfrage zurück.

**Wichig:** Das Springen innerhalb des Fragebogens sollte sehr zurückhaltend angewandt werden. Es gibt nur wenige Anwendungsfälle, in denen diese Filterführung tatsächlich sinnvoll ist. Oftmals ist die Filterführung //Seite(n) im Fragebogen anzeigen/ausblenden// intuitiver.


==== Interview beenden (Screenout) ====

Das Interview soll beendet und ein Screenout-Text (Verabschiedung) angezeigt werden.

Die Verabschiedung wird vorher als //Text// im Fragenkatalog erstellt.

===== Filter testen und Probleme lösen =====

Um die korrekte Funktion eines Filters zu testen, verwenden Sie die Vorschaufunktion unter **Fragebogen zusammenstellen**. Meist spart es viel Zeit, direkt auf der Seite mit der Filterfrage zu starten ({{:button.debug.here.gif?nolink|Starten ab der aktuellen Fragebogen-Seite}}) und für den Test den Debug-Modus zu verwenden.

  * Im Debug-Modus können Sie nach Beantwortung der Filterfrage direkt zu der Seite springen, wo der Filter aktiv werden soll. Fahren Sie dafür mit der Maus über die Seitennummer links oben.
  * Im Debug-Modus sehen Sie, ob die Filterbedingung erfüllt ist (nach dem Klick auf "Weiter") und inwiefern sie aktiv wird (auf der Seite wo die Filterführung die Darstellung beeinflusst). Klicken Sie dafür rechts oben auf //Debug-Information//.

Eine detaillierte Beschreibung liefert die Anleitung [[:de:create:debugging]].

Falls Sie den Fehler nicht finden, geben Sie in einer Frage im Online-Support bitte die folgenden Informationen an:

  * Eine Beschreibung was der Filter machen soll
  * Dass Sie einen Frage-Filter verwenden (keinen PHP-Filter)
  * Die Kennung der Filterfrage
  * Die Kennung/en der zu filternden Fragen, Texte, Seiten
  * Die //Debug-Information//, die angezeigt wird, wenn Sie nach Beantwortung der Filterfrage auf "Weiter" klicken.
  * Die //Debug-Information// auf der Seite, wo der Filter aktiv werden und z.B. etwas an der Darstellung ändern sollte.


===== Vorsicht: Mehrstufige Filter =====

Frage-Filter werden __nur dann__ aktiv, wenn die Filterfrage im Fragebogen angezeigt wurde. Ein Beispiel:

  * Frage FF01 fragt nach dem Besitz eines Smartphones.
  * Frage FF02 wird nur angezeigt, wenn der Teilnehmer ein Smartphone besitzt und fragt nach der Marke des Geräts. Frage FF02 ist selbst eine Filterfrage mit 2 Filtern:
    * Wenn die Marke "Samsung" ausgewählt wurde, soll die Seite "samsung" weiter hinten im Fragebogen angezeigt werden -- sonst nicht.
    * Wenn die Marke "HTC" ausgewählt wurde, soll die Seite "htc" angezeigt werden, sonst nicht.

Problematisch wird es nun, wenn der Teilnehmer angibt, kein Smartphone zu besitzen. Dann wird Frage FF02 (Marke) gar nicht erst angezeigt. Deren Filter werden nicht aktiv und sowohl die Seite "samsung" als auch "htc" werden im späteren Verlauf des Fragebogens angezeigt.

Die Lösung besteht darin, in Frage FF01 (Besitz eines Smartphones) einen weiteren Filter zu ergänzen: Wenn "Nein" ausgewählt wird, dann sollten die Seiten "samsung, htc" ausgeblendet werden.