====== Antworten prüfen ======

SoSci Survey bietet Funktionen, um die Antworten eines Teilnehmers zu überprüfen. Falls diese automatische Prüfung einmal nicht ausreicht, können darüber hinaus individuelle Überprüfungen ergänzt werden.

**Hinweis:** Eine generelle Prüfung aller Antworten auf formale Richtigkeit verursacht unter Umständen Probleme. Es gibt immer Teilnehmer, die sich einen Fragebogen "einfach nur ansehen" möchten. Normalerweise lassen solche Teilnehmer die meisten Fragen unbeantwortet oder tragen offenkundig sinnlose Antworten ein (z.B. Alter: 999 Jahre). Falls sie aber zur Angabe von formal korrekten Daten gezwungen werden, ist das Ergebnis ein scheinbar vollständiger Datensatz. Während sich leere Datensätze anhand der [[:de:results:variables|Variable MISSING]] schnell bereinigen lassen, sind formal korrekte und inhaltlich sinnlose Daten kaum zu identifizieren und "verschmutzen" Ihren Datensatz.

**Hinweis:** Ein automatisches "Nachhaken" (einmal nachfragen und dann ggf. auch eine fehlende oder falsche Antwort akzeptieren) ist in Entwicklung, aber derzeit nicht verfügbar. Für einzelne Fragen/Items kann ein [[#nachhaken|Nachhaken]] mittels Filter eingerichtet werden.


===== Antwortzwang =====

Die Prüfung auf Vollständigkeit ist sinnvoll, wenn ...

  * in einer Frage (z.B. Skala) die Gefahr besteht, dass einzelne Items übersehen werden,
  * wenn die Antwort auf eine Frage (z.B. Auswahl) besonders wichtig ist oder
  * wenn eine Antwort auf eine [[:de:create:filters|Filterfrage]] über den weiteren Verlauf des Interviews entscheidet.

Um die Vollständigkeitsprüfung für eine Frage zu aktivieren, wählen Sie diese Frage im **Fragenkatalog** aus. Je nach Fragetyp kann man den Antwortzwang im Karteireiter //Prüfung der Antwort// oder direkt mit einem Kreuzchen //Prüfung auf Vollständigkeit// aktivieren. Bei einigen Fragetypen (z.B. Texteingabe) kann man das erwünschte Antwortformat detailliert festlegen.

{{:de:create:scr.insist.option.png?nolink|Antwortzwang als Option}}

{{:de:create:scr.insist.tab.png?nolink|Antwortzwang als Karteireiter}}

Abhängig vom Fragetyp kann nicht nur für die gesamte Frage, sondern auch für einzelne Items (z.B. in einer Skala) eine Antwortpflicht aktiviert werden. Wählen Sie dafür das entsprechende Item im **Fragenkatalog** und setzen Sie das entsprechende Kreuzchen. Falls die Frage bereits eine Pflichtfrage ist, wird die Option bei den einzelnen Item nicht mehr angeboten.

Pflichtfrage und -items werden im Fragenkatalog mit einem kleinen Symbol {{:symbol.required.png?nolink|Pflichtfrage/-item}} markiert.

**Hinweis:** Bei einigen Fragetypen ist eine Antwortpflicht sachlogisch nicht möglich -- insbesondere ist hier die Mehrfachauswahl zu nennen. Allerdings kann bei der Mehrfachauswahl eine Mindestzahl an Kreuzchen gefordert werden.

**Hinweis:** Sofern in einer Auswahl oder Mehrfachauswahl für einzelne Antwortoptionen zusätzliche Eingabefelder definiert wurden (z.B. für "Sonstiges", [[selection-textinput|Eingabefelder in einer Auswahlfrage]]), sorgt die Antwortpflicht dafür, dass diese Felder bei ausgewählter Option auch ausgefüllt werden müssen.


===== Mindestanzahl Kreuzchen =====

Bei der Mehrfachauswahl ist eine Antwortpflicht insofern nicht sinnvoll (mit Ausnahme für offene Eingabefelder, s.o.), als "kein Kreuzchen" auch eine Antwort ist. Falls der Teilnehmer aber eine bestimmte Anzahl von Optionen auswählen soll, können Sie dies im Karteireiter //Prüfung der Antwort// der Frage festlegen.

Hier können Sie auch festlegen, dass eine bestimmte Anzahl von Kreuzchen nicht überschirtten werden darf. Mittels [[:de:glossary#javascript|JavaScript]] sorgt SoSci Survey dann dafür, dass die Kreuzchen bereits am Ankreuzen begrenzt werden.

**Tipp:** Wenn Sie eine Option "Keine der vorgenannten Optionen" verwenden, dann wählen Sie diese im **Fragenkatalog** aus und aktivieren Sie die Option //Exklusive Option//. Die Option kann dann nicht gemeinsam mit anderen Optionen ausgewählt werden.


===== Eingabe von Nummern =====

Falls Sie in einem offenen Texteingabefeld nur Zahlen erlauben möchten, können Sie dies wie folgt festlegen: Öffnen Sie zunächst die Detail-Ansicht des entsprechenden Items im **Fragenkatalog** oder mit dem Bearbeiten-Symbol ({{:button.edit.gif?nolink|Bearbeiten}}). Wählen Sie bei //Einschränkungen für die Texteingabe// die Option "Ziffern" oder "Dezimalzahl".

Optional können Sie mittels //Minimum// und //Maximum// festlegen, in welchem Bereich sich die Zahl befinden darf.


===== Weitere Textformate =====

Folgende weitere Textformate sind vordefiniert:

  * //E-Mail-Adresse// -- hier wird auf eine formal korrekte E-Mail-Adresse geprüft. Ob diese Adresse tatsächlich existiert, wird __nicht__ geprüft.
  * //Buchstaben// -- dies schränkt die Eingabe ausschließlich auf die Buchstaben A bis Z ein, Umlaute oder Leerzeichen sind hier __nicht__ erlaubt
  * //Jahreszahl// -- eine vierstellige Jahreszahl im Bereich 1000 bis 2500. Falls Sie einen anderen Bereich benötigen, wählen Sie "Ziffern" und geben Sie den Bereich mittels //Minimum// und //Maximum// an.


===== Reguläre Ausdrücke =====

Bei Texteingaben können Sie auch auf reguläre Ausdrücke prüfen. Falls ein regulärer Ausdruck angegeben ist, werden andere Einschränkungen des Texteingabeformats ignoriert.

Reguläre Ausdrücke sind sehr mächtige Werkzeuge -- aber es ist ein wenig anspruchsvoller, sie zu erlernen. Eine hervorragende englische Anleitung finden Sie unter [[http://www.regular-expressions.info/|regular-expressions.info]].


===== Anpassung der Fehlermeldungen =====

Unter **Textbausteine und Beschriftung** können Sie unten bei //Weitere Texte// alle Fehlermeldungen anpassen. Bitte beachten Sie, dass der Wortlauf nicht individuell für einzelne Fragen angepasst werden kann, außer Sie verwenden individuelle Antwort-Prüfungen (s. unten).

Mit den PHP-Funktionen [[:de:create:functions:getanswermissing|getAnswerMissing()]] und [[:de:create:functions:listfails|listFails()]] lässt sich überprüfen, welche Fragen oder Items nicht beantwortet wurden. Mittels [[:de:create:functions:text|text()]] kann man dann einen Text als angepasste Fehlermeldung anzeigen -- allerdings nur zusätzlich zur vordefinierten Fehlermeldung.


===== Individuelle Antwort-Prüfung =====

Falls die vordefinierten Überprüfungen einmal nicht ausreichen, kann man mittels [[:de:create:php-filters|PHP-Filter]] und der Funktion [[:de:create:functions:repeatpage|repeatPage()]] eine individuelle Antwort-Prüfung programmieren.

Eine detaillierte Erklärung und Beispiele finden Sie in der Anleitung [[:de:create:checks-php]].


===== Nachhaken =====

Bei Fragen, die für die Auswertung wichtig sind oder die leicht übersehen werden (z.B. Items in langen Batterien), kann es sinnvoll sein, bei fehlenden Antworten nachzuhaken.

Bis eine entsprechende Funktion in SoSci Survey verfügbar ist, können Sie mithilfe eines [[filters|Filters]] nachhaken. Dafür gehen Sie vor wie folgt:

  - Fügen Sie beim **Fragebogen zusammenstellen** eine zusätzliche Seite direkt nach der Frage ein.
  - Erstellen Sie auf der Seite einen Filter, welcher die Seite bei korrekte Antwort direkt überspringt und sonst die Frage erneut anzeigt (s. Beispiel unten).

**Hinweis:** SoSci Survey wird Ihnen als Projektleiter eine Warnung anzeigen, weil dieselbe Frage auf unterschiedlichen Seiten im Fragebogen verwendet wird. Meistens deutet dies auf ein Problem hin -- hier ist es beabsichtigt. Daher können Sie diesen Hinweis ignorieren. Der Teilnehmer wird den Hinweis nicht sehen.

Folgendes Beispiel überprüft, ob alle Items der Fragebatterie AB01 (Skala) beantwortet wurde. Ist das nicht der Fall, wird der Textbaustein "missingAB01" angezeigt (muss unter **Textbausteine** zunächst angelegt werden) und die fehlenden Items werden erneut angezeigt.

<code php>
$miss = getItems('AB01', 'is', -9);
if (count($miss) == 0) {
  // Direkt weiter zur nächsten Seite, wenn kein Item fehlt
  goToPage('next');
}
// Fehlermeldung anzeigen
text('missingAB01');
// Frage erneut anzeigen, diesmal nur die fehlenden Items
question('AB01', $miss);
</code>