====== Zähler für Beobachtungsstudien ====== SoSci Survey kann man -- zum Beispiel auf einem Tablet -- auch verwenden, um die Beobachter in Beobachtungsstudien oder die Kodierer bei Inhaltsanalysen von Video-Material zu unterstützen. Die folgende Anleitung erklärt die Programmierung einer Fragebogen-Seite, auf welcher mehrere Knöpfe angeboten werden. Wird einer der Knöpfe angeklickt, wird der Zähler für das entsprechende Ereignis um 1 erhöht. {{:de:create:exp.observation-counter.png|Ergebnis}} Die Fragebogen-Seite enthält fünf Elemente, die nachfolgend erklärt werden. ==== JavaScript-Code zum Zählen ==== Für das eigentliche Zählen ist ein wenig JavaScript erforderlich. Dieser Code besteht aus zwei Teilen. Zum einen eine Funktion ''count()'', welche den Wert in dem durch eine HTML-ID spezifizierten Formularfeld initialisiert oder um eins erhöht. Zum zweiten ein kleines JavaScript-Objekt ''ButtonCounter()'', welches jeweils eine HTML-ID für ein Formularfeld und einen Knopf entgegennimmt. Das Objekt initialisiert mit der vorher definierten ''count()''-Funktion das Formularfeld und registriert den JavaScript Event Handler, welcher auf Klicks reagiert. Legen Sie in einer Rubrik im Fragebogen (hier im Beispiel "JS") einen **Neuen Text** an, legen Sie als *Darstellung* "HTML-Code" fest und fügen Sie den folgenden JavaScript-Code ein. Nach dem Speichern ziehen Sie das Textelement unter **Fragebogen zusammenstellen** als erstes Element auf die Fragebogen-Seite. ==== CSS-Code zur Formatierung der Knöpfe ==== Prinzipiell benötigt das ''
Wichtig ist die (eindeutige) Kennung im ''id'' Attribut (''button01'', ''button02'', ...), welche frei wählbar ist und weiter unten benötigt wird. Die ''%%class="js"%%'' sorgt dafür, dass das CSS von oben angewendet wird. Das ''
'' sorgt nur für eine grafische Abtrennung von der folgenden Frage. ==== Die Formularelemente ==== Damit SoSci Survey die Zähldaten im Datensatz speichert, legen Sie im **Fragenkatalog** eine Frage vom Typ "Offene Texteingabe" oder "Interne Variablen" an. Im Beispiel oben wurde eine offene Texteingabe gewählt, damit man den aktuellen Stand der Zählung live verfolgen und ggf. korrigieren kann. Als Breite für die "Eingabespalte" wurde in der Frage unter //Weitere Einstellungen// -> //Darstellung// -> //Texteingabefeld// -> //Spalte// der Wert 60 eingetragen. Weiterhin wurde das Eingabeformat für alle Eingabefelder auf "Ganze Zahlen" eingeschränkt, damit die Variable im Datensatz einen numerischen Datentyp verwendet. Notwendig sind beide Anpassungen nicht, aber durchaus hilfreich. In der Frage legen Sie bitte für jeden Knopf ein Item bzw. eine Variable an. Im obigen Beispiel sind das 4 Items, welche dieselbe Beschriftung tragen wie die 4 Knöpfe, damit die Beschriftung im Datensatz stimmt. Diese Frage wird als viertes Element (oder an beliebiger anderer Stelle) auf der Fragebogen-Seite eingefügt. ==== Initialisieren der JavaScript-Objekte ==== Zuletzt müssen noch die eingangs definierten JavaScript-Objekte initialisiert werden. Dabei werden durch das Objekt die HTML-IDs der Formularelemente (Eingabefelder aus der Fragen) mit den HTML-IDs der Knöpfe verbunden. Pro Knopf ist hier ein ''new ButtonCounter()'' erforderlich. Als erster Parameter wird die HTML-ID des Formularelements (Texteingabefeld oder interne Variable) angegeben, als zweiter Parameter die HTML-ID des Knopfes, wie im HTML-Code oben angegeben. Dieser JavaScript-Code wird in ein Element "HTML-Code" eingefügt, welches als fünftes Element auf der Fragebogen-Seite platziert wird.