Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:create:php-filters [05.10.2020 18:02] sophia.schauerde:create:php-filters [08.12.2025 22:23] (aktuell) – [Filterfragen (PHP-Filter)] admin
Zeile 1: Zeile 1:
 ====== Filterfragen (PHP-Filter) ====== ====== Filterfragen (PHP-Filter) ======
  
-Wenn die Antwort des Teilnehmers 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 (//[[:de:create:simple-filters|Frage-Filter]]//, einfache Variante) oder unter **Fragebogen zusammenstellen** (//PHP-Filter//) anwenden.+Wenn die Antwort der teilnehmenden Person 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 (//[[:de:create:simple-filters|Frage-Filter]]//, einfache Variante) oder unter **Fragebogen zusammenstellen** (//PHP-Filter//) anwenden.
  
 PHP-Filter erlauben deutlich anspruchsvollere Filter als Frage-Filter, erfordern aber den Umgang mit ein wenig PHP-Programmcode. Die meisten Nutzer von SoSci Survey haben vorher noch nie mit einer Programmiersprache gearbeitet. Zum Erstellen von Filterfragen werden Sie in diesem Kapitel einige grundlegende Kenntnisse zur Programmierung mit PHP erlernen. __Keine Angst:__ Aller Anfang ist schwer, aber die Programmierung von Filtern ist absolut machbar und der Lohn der Mühe ist eine steile Lernkurve. Für eventuelle Frustrationen entschädigt meist ein freudiges Aha-Erlebnis. PHP-Filter erlauben deutlich anspruchsvollere Filter als Frage-Filter, erfordern aber den Umgang mit ein wenig PHP-Programmcode. Die meisten Nutzer von SoSci Survey haben vorher noch nie mit einer Programmiersprache gearbeitet. Zum Erstellen von Filterfragen werden Sie in diesem Kapitel einige grundlegende Kenntnisse zur Programmierung mit PHP erlernen. __Keine Angst:__ Aller Anfang ist schwer, aber die Programmierung von Filtern ist absolut machbar und der Lohn der Mühe ist eine steile Lernkurve. Für eventuelle Frustrationen entschädigt meist ein freudiges Aha-Erlebnis.
Zeile 9: Zeile 9:
 **Wichtig:** Wenn ein Filter nicht wie gewünscht funktioniert, lesen Sie bitte [[filter-solving|Problemlösung bei Filterfragen]] **Wichtig:** Wenn ein Filter nicht wie gewünscht funktioniert, lesen Sie bitte [[filter-solving|Problemlösung bei Filterfragen]]
  
 +**Wichtig:** Falls Sie sich beim PHP-Code von einem KI-Tool helfen lassen möchten, dann verwenden Sie folgenden Prompt und bleiben Sie kritisch, denn KI-Modelle machen häufig Fehler. Sollte der Code länger sein als ein paar Zeilen, dann gibt es in aller Regel eine viel einfachere Lösung in SoSci Survey.
  
-**Tipp:** Werden die Teilnehmer in Kontroll- und Experimentalgruppe geteilt ([[:de:create:questions:random]], [[:de:create:randomization]]) und sehen unterschiedliche Fragebogen-Seiten, dann ist es i.d.R. sinnvoll mit ''[[:de:create:functions:setpageorder]]'' anstatt ''[[:de:create:functions:gotopage]]'' zu arbeiten: Je früher SoSci Survey im Fragebogen-Verlauf Bescheid weiß, dass Seiten übersprungen werden, desto akkurater kann der Fortschrittsbalken angepasst werden.+> Ich erstelle einen Fragebogen in SoSci Survey. Bitte lies zuerst die technischen Regeln unter %%https://www.soscisurvey.de/llms.txt%% und beachte diese strikt. Schreibe mir dann einen PHP-Filter, der ... 
 + 
 +**Tipp:** Werden die Teilnehmer:innen in Kontroll- und Experimentalgruppe geteilt ([[:de:create:questions:random]], [[:de:create:randomization]]) und sehen unterschiedliche Fragebogen-Seiten, dann ist es i.d.R. sinnvoll mit ''[[:de:create:functions:setpageorder]]'' anstatt ''[[:de:create:functions:gotopage]]'' zu arbeiten: Je früher SoSci Survey im Fragebogen-Verlauf Bescheid weiß, dass Seiten übersprungen werden, desto akkurater kann der Fortschrittsbalken angepasst werden
 + 
 +**Tipp:** PHP-Filter werden auch in dem Video-Tutorial [[https://www.soscisurvey.de/de/screencast#extra4|Advanced Filter Questions]] erkärt.
  
  
Zeile 18: Zeile 23:
  
  
-**Beispiel 1:** Antwortet ein Teilnehmer mit "ja", soll eine zusätzliche Frage angezeigt werden.+**Beispiel 1:** Antwortet eine teilnehmende Person mit "ja", soll eine zusätzliche Frage angezeigt werden.
  
-**Beispiel 2:** Antwortet ein Teilnehmer mit "nein", werden mehrere Seiten übersprungen.+**Beispiel 2:** Antwortet eine teilnehmende Person mit "nein", werden mehrere Seiten übersprungen.
  
  
Zeile 32: Zeile 37:
   * die Seite, wo es bei einem "nein" weiter geht (Beispiel 2)   * die Seite, wo es bei einem "nein" weiter geht (Beispiel 2)
  
-Die Kennung der Variable finden Sie in der **Variablen-Übersicht**. Dort steht etwa folgendes:+Die Kennung der Variable finden Sie in der **Variablen-Übersicht**. Dort steht etwa Folgendes:
  
   [PT01] Dropdown-Auswahl   [PT01] Dropdown-Auswahl
Zeile 42: Zeile 47:
     -9 = Keine Antwort     -9 = Keine Antwort
  
-Die Variable heißt also PT01, der Antwortcode für "ja" ist 1 und der Code für "nein" ist 2. Im Idealfall haben Sie für die Filterfrage festgelegt, dass der Teilnehmer diese beantworten muss (Karteireiter //Prüfung der Antwort//). Dann kann der Code -9 nämlich nicht mehr vorkommen.+Die Variable heißt also PT01, der Antwortcode für "ja" ist 1 und der Code für "nein" ist 2. Im Idealfall haben Sie für die Filterfrage festgelegt, dass die teilnehmende Person diese beantworten muss (Karteireiter //Prüfung der Antwort//). Dann kann der Code -9 nämlich nicht mehr vorkommen.
  
 **Hinweis:** Sollten dort mehrere Variablen stehen, z.B. ''PT01_01'' und ''PT01_02'', so überprüfen Sie den Typ der Frage. Es ist wichtig, dass Sie für eine einfache Auswahl den Fragetyp "Auswahl" oder "Dropdown-Auswahl" verwenden -- __nicht__ aber "Mehrfachauswahl", wenn Sie keine solche erlauben möchten. **Hinweis:** Sollten dort mehrere Variablen stehen, z.B. ''PT01_01'' und ''PT01_02'', so überprüfen Sie den Typ der Frage. Es ist wichtig, dass Sie für eine einfache Auswahl den Fragetyp "Auswahl" oder "Dropdown-Auswahl" verwenden -- __nicht__ aber "Mehrfachauswahl", wenn Sie keine solche erlauben möchten.
Zeile 49: Zeile 54:
 ==== PHP-Code einfügen ==== ==== PHP-Code einfügen ====
  
-Der Filter wird nun als //PHP-Code// beim **Fragebogen zusammenstellen** eingegeben. Und zwar an der Stelle wo der Filter aktiv werden soll (also wo die zweite Frage angezeigt wird bzw. wo gesprungen wird). Dazu zieht man mit der Maus einfach ein //PHP-Code// von rechts in die Fragebogen-Seite hinein ([[::de:create:php|Einführung in PHP-Code]]).+Der Filter wird nun als //PHP-Code// beim **Fragebogen zusammenstellen** eingegeben. Und zwar an der Stelle wo der Filter aktiv werden soll (also wo die zweite Frage angezeigt wird bzw. wo gesprungen wird). Dazu ziehen Sie mit der Maus einfach einen //PHP-Code// von rechts in die Fragebogen-Seite hinein ([[::de:create:php|Einführung in PHP-Code]]).
  
-**Wichtig:** Ein PHP-Filter kann __niemals__ auf derselben Seite stehen, auf der die Filterfrage steht (also jene Frage, auf deren Antwort Sie sich beziehen, im Beispiel ''PT01''). SoSci Survey verarbeitet den Fragebogen immer seitenweise, um den Teilnehmer eine komplette Fragebogen-Seite anzuzeigen. In dem Moment, wo die Seite mit der Filterfrage verarbeitet wird, kann der Teilnehmer diese Frage noch gar nicht beantwortet haben -- und entsprechend kann ein Filter noch nicht auf die Antwort reagieren (''[[:de:create:functions:value|value()]]'').+**Wichtig:** Ein PHP-Filter kann __niemals__ auf derselben Seite stehen, auf der die Filterfrage steht (also jene Frage, auf deren Antwort Sie sich beziehen, im Beispiel ''PT01''). SoSci Survey verarbeitet den Fragebogen immer seitenweise, um den Teilnehmer:innen eine komplette Fragebogen-Seite anzuzeigen. In dem Moment, wo die Seite mit der Filterfrage verarbeitet wird, kann die teilnehmende Person diese Frage noch gar nicht beantwortet haben -- und entsprechend kann ein Filter noch nicht auf die Antwort reagieren (''[[:de:create:functions:value|value()]]'').
  
  
Zeile 155: Zeile 160:
 ''**if (**Bedingung**)** Befehl'' ''**if (**Bedingung**)** Befehl''
  
-Zusätzlich kann man durch ein **else** auch noch angeben, was zu tun ist, wenn die Bedingung nicht erfüllt ist:+Zusätzlich kann durch ein **else** auch noch angeben werden, was zu tun ist, wenn die Bedingung nicht erfüllt ist:
  
 ''**if (**Bedingung**)** Befehl1 **else** Befehl2'' ''**if (**Bedingung**)** Befehl1 **else** Befehl2''
Zeile 170: Zeile 175:
 Zu einem Filter gehören immer zwei Dinge: Eine Ursache und eine Auswirkung auf den Verlauf des Fragebogens. Zu einem Filter gehören immer zwei Dinge: Eine Ursache und eine Auswirkung auf den Verlauf des Fragebogens.
  
-  * Die Ursache ist normalerweise eine Antwort des Befragten.+  * Die Ursache ist normalerweise eine Antwort der befragten Person.
   * Die häufigste Auswirkung ist es, dass eine Frage oder ein ganzer Block von Fragen in Abhängigkeit von der Antwort angezeigt werden oder nicht.   * Die häufigste Auswirkung ist es, dass eine Frage oder ein ganzer Block von Fragen in Abhängigkeit von der Antwort angezeigt werden oder nicht.
  
 Für das folgende Beispiel nehmen wir an, dass auf Seite 2 im Fragebogen gefragt wurde, wie hoch das monatliche Einkommen sei. Zur Auswahl standen mehrere Kategorien: 1=Kein Einkommen, 2=bis 500 EUR, u.s.w. Diese Frage ist im Folgenden die Filterfrage. Für das folgende Beispiel nehmen wir an, dass auf Seite 2 im Fragebogen gefragt wurde, wie hoch das monatliche Einkommen sei. Zur Auswahl standen mehrere Kategorien: 1=Kein Einkommen, 2=bis 500 EUR, u.s.w. Diese Frage ist im Folgenden die Filterfrage.
  
-Nun ist es wichtig zu wissen, dass SoSci Survey - während Seite 2 erstellt wird - noch keine Ahnung hat, was der Befragte antworten wird. Die Seite wird zunächst komplett erstellt, dann beim Befragten angezeigt. Dieser wählt eine Option und klickt auf "Weiter". Erst mit dem Klick auf "Weiter" wird die Antwort zur Seite 2 an den Befragungsserver übermittelt und gespeichert. Direkt im Anschluss erstellt der Server Seite 3 und übermittelt diese zum Ausfüllen an den Teilnehmern.+Nun ist es wichtig zu wissen, dass SoSci Survey - während Seite 2 erstellt wird - noch keine Ahnung hat, was die befragte Person antworten wird. Die Seite wird zunächst komplett erstellt, dann bei der befragten Person angezeigt. Dieser wählt eine Option und klickt auf "Weiter". Erst mit dem Klick auf "Weiter" wird die Antwort zur Seite 2 an den Befragungsserver übermittelt und gespeichert. Direkt im Anschluss erstellt der Server Seite 3 und übermittelt diese zum Ausfüllen an den Teilnehmer:innen.
  
 {{fig.filters.principle.png?nolink|Prinzipielle Funktion von Filtern durch Springen}} {{fig.filters.principle.png?nolink|Prinzipielle Funktion von Filtern durch Springen}}
Zeile 181: Zeile 186:
 Das Wesentliche dabei: Eine Antwort von Seite 2 ist dem Server erst auf Seite 3 bekannt. Daher darf der Filter zur Frage frühestens auf Seite 3 erstellt werden. Das Wesentliche dabei: Eine Antwort von Seite 2 ist dem Server erst auf Seite 3 bekannt. Daher darf der Filter zur Frage frühestens auf Seite 3 erstellt werden.
  
-Was aber nun, wenn die Fragen auf Seite 3 nur angezeigt werden sollen, wenn die erste Option ausgewählt wurde? Dann muss man ein wenig um die Ecke denken: Dazu leitet der Filter alle Befragten, die __nicht__ die erste Option gewählt haben, direkt zur Seite 4 weiter.+Was aber nun, wenn die Fragen auf Seite 3 nur angezeigt werden sollen, wenn die erste Option ausgewählt wurde? Dann muss ein wenig um die Ecke gedacht werden: Dazu leitet der Filter alle Befragten, die __nicht__ die erste Option gewählt haben, direkt zur Seite 4 weiter.
  
-Nach diesem Prinzip funktionieren die meisten Filter in SoSci Survey: Man überspringt einzelne Fragen oder ganze Seiten. Unter Umständen müssen dafür gleich mehrere Filter hintereinander gehängt werden:+Nach diesem Prinzip funktionieren die meisten Filter in SoSci Survey: Einzelne Fragen oder ganze Seiten werden übersprungen. Unter Umständen müssen dafür gleich mehrere Filter hintereinander gehängt werden:
  
-Zeigt man z.B. auf Seite 10 eine Mehrfachauswahl mit 5 Automarken und möchte zu den bekannten Marken jeweils 4 Fragen (über 2 Seiten) stellen, dann braucht man 5 Filter. Der erste Filter prüft auf Seite 11, ob das erste Item der Mehrfachauswahl angeklickt wurde. Falls nicht, springt er direkt weiter zu Seite 13 (Seiten 11 und 12 enthalten die Fragen zur ersten Marke). Auf Seite 13 steht der nächste Filter. Falls die zweite Marke (also das zweite Item) nicht angeklickt wurde, geht es direkt weiter zu Seite 15.+Wenn auf Seite 10 beispielsweise eine Mehrfachauswahl mit 5 Automarken angezeigt wird und zu den bekannten Marken jeweils 4 Fragen (über 2 Seiten) gestellt werden sollen, dann werden 5 Filter benötigt. Der erste Filter prüft auf Seite 11, ob das erste Item der Mehrfachauswahl angeklickt wurde. Falls nicht, springt er direkt weiter zu Seite 13 (Seiten 11 und 12 enthalten die Fragen zur ersten Marke). Auf Seite 13 steht der nächste Filter. Falls die zweite Marke (also das zweite Item) nicht angeklickt wurde, geht es direkt weiter zu Seite 15.
  
-Falls die dritte Marke angekreuzt wurde, dann reagiert der Filter auf Seite 15 nicht. Es werden ganz normal die Fragen der Seite angezeigt und SoSci Survey wartet darauf, dass der Befragte auf "Weiter" klickt. Dann wird Seite 16 mit den beiden Fragen angezeigt. Erst auf Seite 17 ist der nächste Filter: Entweder er leitet den Teilnehmer direkt weiter zu Seite 19 oder eben nicht...+Falls die dritte Marke angekreuzt wurde, dann reagiert der Filter auf Seite 15 nicht. Es werden ganz normal die Fragen der Seite angezeigt und SoSci Survey wartet darauf, dass die befragte Person auf "Weiter" klickt. Dann wird Seite 16 mit den beiden Fragen angezeigt. Erst auf Seite 17 ist der nächste Filter: Entweder er leitet die teilnehmende Person direkt weiter zu Seite 19 oder eben nicht...
  
 {{fig.filters.jump.png?nolink|Überspringen von Fragen durch Filter}} {{fig.filters.jump.png?nolink|Überspringen von Fragen durch Filter}}
Zeile 210: Zeile 215:
 ===== Seiten überspringen ===== ===== Seiten überspringen =====
  
-Noch einmal zurück zum einfachen Beispiel: Auf Seite 1 des Fragebogens wird die Frage AB01 gestellt (eine Auswahl zum Einkommen). Ziel ist es, dass die Fragen EK01 und EK02 nur dann gestellt werden, wenn der Befragte bei der Frage AB01 die erste Option auswählt.+Noch einmal zurück zum einfachen Beispiel: Auf Seite 1 des Fragebogens wird die Frage AB01 gestellt (eine Auswahl zum Einkommen). Ziel ist es, dass die Fragen EK01 und EK02 nur dann gestellt werden, wenn die befragte Person bei der Frage AB01 die erste Option auswählt.
  
-Im Umkehrschluss heißt das: Wenn der Befragte eine Antwortoption größer als 2 (Einkommen bis 500 EUR) wählt, dann wird Seite 3 übersprungen.+Im Umkehrschluss heißt das: Wenn die befragte Person eine Antwortoption größer als 2 (Einkommen bis 500 EUR) wählt, dann wird Seite 3 übersprungen.
  
 Das folgende Beispiel beschreibt einen Fragebogen mit 3 Seiten. Auf Seite 2 wird geprüft, ob die Person mehr als 500 EUR Einkommen angegeben hat. Wenn nicht, dann wird der Rest der Seite übersprungen und es geht direkt auf Seite 3 weiter. Das folgende Beispiel beschreibt einen Fragebogen mit 3 Seiten. Auf Seite 2 wird geprüft, ob die Person mehr als 500 EUR Einkommen angegeben hat. Wenn nicht, dann wird der Rest der Seite übersprungen und es geht direkt auf Seite 3 weiter.
  
-**Tipp:** Wie man PHP-Code im Fragebogen einfügt beschreibt das Kapitel [[php|Einführung in PHP-Code]]. Die Kurzfassung: Für Filter braucht man PHP-Code. Dafür zieht man ein Element //PHP-Code// (über der Auswahlliste mit Fragen) in die Seite hinein.+**Tipp:**Wie PHP-Code in den Fragebogen eingefügt wird, ist in Kapitel [[php|Einführung in PHP-Code]] beschrieben. Die Kurzfassung: Für Filter wird PHP-Code benötigt. Dafür wird ein Element //PHP-Code// (über der Auswahlliste mit Fragen) in die Seite hinein gezogen.
  
-**Tipp:** Die Fragen muss man natürlich nicht als PHP-Befehle einfügen, man kann sie beim Zusammenstellen des Fragebogens einfach aus der Auswahl in die Seite ziehen ([[php#bequemer_programmieren_fragen_und_texte|Bequemer programmieren]]).+**Tipp:** Die Fragen müssen nicht als PHP-Befehle eingefügt werden. Beim Zusammenstellen des Fragebogens können sie einfach aus der Auswahl auf die Seite gezogen werden ([[php#bequemer_programmieren_fragen_und_texte|Bequemer programmieren]]).
  
 ==== Eine Kennung für eine Seite im Fragebogen vergeben ==== ==== Eine Kennung für eine Seite im Fragebogen vergeben ====
  
-Für die dritte Seite muss man als Kennung "tvkonsum" angeben, nur so kann man mit ''[[:de:create:functions:gotopage|goToPage()]]'' direkt zur Seite 3 springen.+Für die dritte Seite muss als Kennung "tvkonsum" angegeben werden. Nur so kann ''[[:de:create:functions:gotopage|goToPage()]]'' direkt zur Seite 3 springen.
  
-Die Kennung kann man beim Zusammenstellen des Fragebogens festlegen, wenn man die Seite angeklickt hat: Einfach oben links auf der Seite eintragen.+Die Kennung kann beim Zusammenstellen des Fragebogens festgelegt werden, wenn die Seite angeklickt wird. Tragen Sie sie dazu einfach oben links auf der Seite ein.
  
 {{scr.filters.page_ident.png?nolink|Eine Seiten-Kennung zuweisen}} {{scr.filters.page_ident.png?nolink|Eine Seiten-Kennung zuweisen}}
Zeile 238: Zeile 243:
 ==== Umsetzung mit möglichst viel PHP-Code ==== ==== Umsetzung mit möglichst viel PHP-Code ====
  
-Normalerweise wird man PHP-Code im Fragebogen nur dort verwenden, wo man ihn braucht –- so wie oben. Weil sich die Inhalte von Fragebogen-Seite aber so schön kurz im PHP-Code darstellen lassen, werden Sie in der Anleitung auch häufiger die folgende Form finden. Inhaltlich ist die Funktion zur obigen Umsetzung mit wenig PHP-Code identisch.+PHP-Code wird im Fragebogen normalerweise nur dort verwendet, wo er benötigt wird –- so wie oben. Weil sich die Inhalte von Fragebogen-Seite aber so schön kurz im PHP-Code darstellen lassen, werden Sie in der Anleitung auch häufiger die folgende Form finden. Inhaltlich ist die Funktion zur obigen Umsetzung mit wenig PHP-Code identisch.
  
 **Seite 1** **Seite 1**
Zeile 271: Zeile 276:
 ===== Anweisungs-Blöcke ===== ===== Anweisungs-Blöcke =====
  
-Im Beispiel folgt auf die IF-Bedingung eine geschweifte Klammer (''{''). Geschweifte Klammern dienen in PHP dazu, mehrere Funktionen/Befehle (z.B. mehrere Fragen) zusammenzufassen. Es ist generell sinnvoll, die Anweisung(en) hinter eine IF-Konstruktion in geschweifte Klammern zu setzen - wenn man keine Klammern verwendet und weitere Befehle einfügt, dann sucht man oft sehr lange nach dem Fehler.+Im Beispiel folgt auf die IF-Bedingung eine geschweifte Klammer (''{''). Geschweifte Klammern dienen in PHP dazu, mehrere Funktionen/Befehle (z.B. mehrere Fragen) zusammenzufassen. Es ist generell sinnvoll, die Anweisung(en) hinter einer IF-Konstruktion in geschweifte Klammern zu setzen. Wenn keine Klammern verwendet und weitere Befehle eingefügt werden, dann wird oft sehr lange nach dem Fehler gesucht.
  
 **Tipp:** Nutzen Sie für jeden Anweisungsblock geschweifte Klammern und rücken Sie den PHP-Code wie im Beispiel mit Leerzeichen ein (die Eingabefelder haben mit Tabulatoren leider noch Probleme). So verlieren Sie auch bei komplexeren Filtern nicht den Überblick und vermeiden Fehler. **Tipp:** Nutzen Sie für jeden Anweisungsblock geschweifte Klammern und rücken Sie den PHP-Code wie im Beispiel mit Leerzeichen ein (die Eingabefelder haben mit Tabulatoren leider noch Probleme). So verlieren Sie auch bei komplexeren Filtern nicht den Überblick und vermeiden Fehler.
Zeile 314: Zeile 319:
 Erstellen Sie nun unter **Fragebogen zusammenstellen** einen neuen Fragebogen, //Kennung// "filter1", //Beschreibung// "Meine erste Filterfrage". Erstellen Sie nun unter **Fragebogen zusammenstellen** einen neuen Fragebogen, //Kennung// "filter1", //Beschreibung// "Meine erste Filterfrage".
  
-**Tipp:** Für die Filterfrage wurde die Option **Die Frage muss vollständig beantwortet werden** aktiviert. Mit dieser Option sollte man generell sehr sparsam umgehen -- bei Filtern es aber sinnvoll, auf eine Antwort zu bestehenDenn hier muss man ja auf Basis der Antwort etwas entscheiden.+**Tipp:** Für die Filterfrage wurde die Option **Die Frage muss vollständig beantwortet werden** aktiviert. Mit dieser Option sollte generell sehr sparsam umgegangen werden. Bei Filtern ist es jedoch sinnvoll, auf eine Antwort zu bestehenDenn hier muss auf Basis der Antwort eine Entscheidung getroffen werden.
  
 ==== Filter zur Auswahl ==== ==== Filter zur Auswahl ====
Zeile 347: Zeile 352:
   question('IN04');  // Warum kein Interanschluss zu Hause?   question('IN04');  // Warum kein Interanschluss zu Hause?
 } }
-question('AB01'); // Beschäftigungsverhältnis |+question('AB01'); // Beschäftigungsverhältnis 
 +</code>
  
 ===== Seiten überspringen ===== ===== Seiten überspringen =====
Zeile 442: Zeile 448:
   text('screenout');  // Verabschiedung anzeigen   text('screenout');  // Verabschiedung anzeigen
   buttonHide();  // Weiter-Knopf ausblenden   buttonHide();  // Weiter-Knopf ausblenden
 +  setStatus('screenout'); // Status im Datensatz vermerkten
   pageStop();  // Falls unter dem Filter noch Inhalte auf der Seite folgen   pageStop();  // Falls unter dem Filter noch Inhalte auf der Seite folgen
 } }
Zeile 447: Zeile 454:
  
 **Tipp:** Sie können durch Wiederholung des Filters unterschiedliche Variablen überprüfen. Mittels bool'scher Operatoren können Sie in einem Filter aber auch mehrere Variablen zugleich prüfen ([[filter-boolean|Mehrere Bedingungen verknüpfen]]). **Tipp:** Sie können durch Wiederholung des Filters unterschiedliche Variablen überprüfen. Mittels bool'scher Operatoren können Sie in einem Filter aber auch mehrere Variablen zugleich prüfen ([[filter-boolean|Mehrere Bedingungen verknüpfen]]).
 +
 +**Tipp:** Einen einfachen Screenout können Sie auch komplett ohne PHP-Code erstellen, wenn der Screenout über eine Auswahlfrage ausgelöst wird. Legen sie dafür im Fragenkatalog einen Text an, der beim Screenout gezeigt werden soll. Anschließend bearbeiten Sie die Screenout-(Auswahl-)Frage und tragen im Karteireiter "Filterfrage" einen Screenout ein. Dort müssten Sie dann u.a. den zuvor angelegten Text auswählen.
 +
  
 ===== Tipps zu Filtern ===== ===== Tipps zu Filtern =====
de/create/php-filters.1601913738.txt.gz · Zuletzt geändert: von sophia.schauer
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 4.0 International
Driven by DokuWiki