====== question() ======

''void **question**(string|array //FrageKennung//, array|string //Items//, [string //Optionen//])''

Zeigt die Frage mit der angegebenen //FrageKennung// im Fragebogen an. Die Funktion ''question()'' wird vor allem in Verbindung mit [[:de:create:filters|Filtern und Filterfragen]] verwendet.

  * //FrageKennung//
    * (string) Die vierstellige Kennung setzt sich aus der Kennung von Rubrik und Frage zusammen (jeweils zweistellig) und muss in Anführungszeichen (einfache oder doppelte) angegeben werden, z.B. '''XY01'''.
    * (array) Es kann auch ein Array mit mehreren Frage-Kennungen angegeben werden. Diese werden dann als [[:de:create:combine|kombinierte Frage]] dargestellt, genauso wie bei der Verwendung des Parameters ''combine=...''.
  * //Items//\\ Optional kann mit dem zweite Parameter angegeben werden, welche Items der Frage gezeigt werden sollen und/oder in welcher Reihenfolge dies geschieht. Die Kennungen der Items werden entweder als Array (''array(2,4,6,8)'') oder durch ein Komma getrennt als String ('''2,4,6,8''') angegeben. In der Itemliste können auch Zahlenbereiche angegeben werden, z.B. '''1,3,5-10''' oder ''array(1,3,'5-10')'', um die Items 1, 3, 5, 6, 7, 8, 9 und 10 zu beschreiben.
  * //Optionen//\\ Für die Feinjustierung steht eine ganze Reihe von Optionen zur Verfügung. Für jeden ''question()''-Befehl können beliebig viele Optionen angegeben werden. Setzen Sie jede Option in Anführungszeichen (einfache oder doppelte) und trennen Sie mehrere Optionen durch Kommata (s. Beispiele unten).
    * '''show-title=no'''\\ Fragetext wird nicht angezeigt, die Nummerierung wird ausgesetzt.
    * '''show-explanation=no'''\\ Die Erklärung/Anweisungen werden nicht angezeigt.
    * '''show-items=no'''\\ Die Items werden nicht angezeigt.
    * '''spacing=<n>'''\\ Abstand unter der Frage in Pixel.
    * '''number=<n>'''\\ Zeigt vor der Frage die Nummer <n> an, statt automatisch hochzuzählen oder blendet die Nummer mit "number=no" ganz aus.\\ **Tipp:** Sie können die Nummerierung im Fragebogen (**Fragebogen zusammenstellen** -> //Einstellungen//) übrigens auch generell abschalten. Mit der Option ''number=<n>'' oder ''number=yes'' können Sie dann einzelne Frage mit einer Nummer versehen.
    * '''anchor=<Anzahl>'''\\ Die Verankerung (Vorspann, grafische, numerische und verbale Verankerung) einer Skala oder eines Polartitätenprofils alle <Anzahl> Items wiederholen. Sinnvoll bei Fragen mit zahlreichen Items.
    * '''anchor=none'''\\ Blendet die Verankerung (Vorspann, grafische, numerische und verbale Verankerung) einer Skala oder eines Polartitätenprofils komplett aus.
    * '''random'''\\ Die Items der Frage werden in zufälliger Reihenfolge ausgegeben. Dieser Parameter überschreibt dynamisch die Einstellung zur Item-Sortierung in der Frage.
    * '''random=<n>'''\\ Es werden <n> Items zufällig ausgewählt und in zufälliger Reihenfolge angezeigt.
    * '''combine=<Kennung andere Frage>'''\\ Erzeugen einer kombinierten Frage ([[:de:create:combine|Kombinierte Fragen]]).
    * '''gap=<Angabe>'''\\ Abstand zwischen den Eingabefeldern einer kombinierten Frage in Pixeln (z.B. '''gap=20''').
    * '''gap=line'''\\ Eine Linie zwischen den kombinierten Fragen anzeigen. Der Abstand oder die Linie wird zwischen allen kombinierten Fragen gleichermaßen angezeigt.
  * //Optionen//\\ Einige Optionen erlauben es, dynamisch Einstellungen in der Frage zu überschreiben:
    * '''filter=<Angabe>'''\\ Präfix für Datenbank-Schlüssel in einer Frage vom Typ "erweiterte Auswahl" oder "Texteingabe mit Auswahlempfehlung" (z.B. '''filter=country''' zur Anzeige aller Datenbank-Einträge, deren Schlüssel mit "country" beginnt). Damit die Kodierung einer Antwort bei der Auswahlempfehlung korrekt funktioniert, muss in der Frage selbst zumindest ein Teil des Präfixes als //Präfix für Datenbank-Schlüssel// eingetragen werden. Mittels ''question()'' kann dann eine Eingrenzung vorgenommen werden.
    * '''direction=<up|down>'''\\ Auswahloptionen einer Skala oder einer horizontalen Auswahl aufsteigend (''up'') oder absteigend (''down'') anordnen.
    * '''composition=<default|extended|dense>'''\\ Einstellung zur //Anordnung einer Frage// anpassen. Dieser Parameter überschreibt dynamisch die entsprechende Einstellung in der Frage.
    * '''align-labels=<center|inside|outside|eachline>'''\\ Ausrichtung der verbalen Verankerung in einer Skala anpassen, die nur die Extrema beschriftet.
    * '''shading=<auto|none|start-shaded|start-unshaded|all-shaded|all-unshaded>'''\\ Schattierung der Items.
    * '''flip-inputs'''\\ In den meisten Fragen kann man einstellen, ob die Eingabefelder (z.B. Kästchen zum Ankreuzen) links oder rechts der Beschriftungen stehen sollen. Mit diesem Parameter können Sie die Einstellung invertieren.

===== Hinweise =====

**Wichtig:** Ein Aufruf der Funktion ''question()'' ist aquivalent zum Hineinziehen (Drag & Drop) einer Frage in den Fragebogen. Wenn Sie eine Frage mit dem Befehl ''question()'' einbinden (z.B. in einem Filter), dann stellen Sie sicher, dass dieselbe Frage nicht zusätzlich nochmal per Hineinziehen auf der Seite platziert wurde. Sonst erscheint die Frage doppelt.

**Wichtig:** Bei der Kennung und allen Optionen unterscheidet SoSci Survey zwischen Groß- und Kleinbuchstaben.

**Hinweis:** Sowohl die Kennung als auch weitere Optionen müssen als Zeichenkette (String), also i.d.R. in Anführungszeichen (einfach oder doppelt) notiert werden (s. Beispiele).

**Tipp:** Sie können dynamisch nur solche Items anzeigen, welche der Teilnehmer in einer anderen Frage ausgewählt hat. Mehr dazu s. [[:de:create:filter-items|Items in eine anderen Frage übernehmen]].

**Tipp:** Sie müssen den ''question()''-Befehl nicht per Hand tippen. Sie können eine Frage auch einfach in ein //PHP-Code// Element hineinziehen, s. [[:de:create:php#bequemer_programmieren_fragen_und_texte|Einführung in PHP-Code: Bequemer programmieren (Fragen und Texte)]].


===== Beispiele =====

<code php>
question('BS10');  // Tägliche Fernsehnutzung
question('BS01', '2,1,4,5');  // Hier werden Items 2, 1, 4 und 5 abgefragt
question('NH02', 'random=3');  // 3 Items werden zufällig ausgewählt
question('AA01', 'show-title=no');  // Fragetext ausblenden

// Die folgenden drei Zeilen zeigen jeweils die Items 1 bis 4 und 6 der Frage BS07
question('BS07', array(1,2,3,4,6));
question('BS07', array('1-4',6));
question('BS07', '1-4,6');

question('SK01', 'spacing=4');  // Eine Skala anzeigen und direkt darunter ...
question('SK02', '1', 'show-title=no');  // ... das erste Item einer offenen Texteingabe "Sonstiges: ___"
</code>