Navigation

3 Erweiterte Möglichkeiten

Optische Gestaltung

Mit dem Attribut css-stylesheet des questionnaire-Elements kann die URL einer CSS-Datei angegeben werden, welche für die optische Gestaltung verwendet werden soll.

Es werden folgende Klassen definiert:

div.questionGestaltung einer Frage insgesamt
div.qtextGestaltung des Fragetextes
div.atextGestaltung der Antworten
div.stextGestaltung der erweiterten Statistik
span.fnumHervorhebung der Fragenummer bei der Ausgabe der IDs
td.progonFelder der Fortschrittsanzeige bei Sektionen (beantwortet)
td.progoffFelder der Fortschrittsanzeige bei Sektionen (noch ausstehend)

In der Datei xquestlib.xsl sind Vorgabewerte eingetragen, die von der externen CSS-Datei überschrieben werden können.

Gruppierungen

Gelegentlich kommt es vor, dass der Fragebogen optisch zu umfangreich erscheint. Um den Nutzer nicht zu überfordern, kann man den Fragebogen daher in Gruppen gliedern. Wenn der Browser des Nutzers JavaScript unterstützt, so werden alle bis auf die erste Gruppe verborgen. Die folgenden Gruppen werden mit Hilfe von Schaltflächen angezeigt. Ist kein JavaScript vorhanden, so sieht der Nutzer den gesamten Fragebogen am Stück.

Die Gliederung wird mit dem section-Element vorgenommen, welches zusammengehörige Abschnitte umschließt.

<section>
  // hier die Fragen 1-4
</section>
<section>
  // hier die Fragen 5-9
</section>

Beschränkungen

Mit Hilfe des Attributes restrict der questionnaire-Elmentes kann festgelegt werden, ob und in welcher Form ein Abschicken der Fragebögen beschränkt wird. Es stehen die Varianten url, inline, inline_short und user zur Verfügung.

In drei erstgenannten Fällen wird eine Liste von TAN-Codes erzeugt, die jeweils nur ein einziges mal verwendet werden können. Um ein beliebiges Erfinden von Codes zu verhindern, wird eine Zufallszahl mit Hilfe des Datenbankkennwortes und des Tabellennamens signiert.

url
bedeutet, dass die TAN per URL dem Fragebogensystem mitgeteilt wird. Einzusetzen ist dies z.B. wenn der Zugang zum Fragebogen per HTML-Link oder verschickter E-Mail realisiert wird.
inline
bedeutet, dass vier zusätzliche Eingabefelder erzeugt werden, in die der Nutzer den 16stelligen TAN-Code eintragen muss. Das ist zweckmäßig, wenn die TAN-Codes auf Papier den Nutzern ausgehändigt werden.
inline_short
erzeugt im Gegensatz zu inline nur einen sechs-stelligen Code. Dieser ist allerdings wesentlich anfälliger für Kollisionen und sollte daher nur bei sehr kleinen Umfragen (<2500 Teilnehmer) verwendet werden.
user
bedeutet, dass die PHP-Umgebungsvariable AUTH_USER ausgewertet wird. Zusammen mit einer HTTP-Authentifizierung kann damit realisiert werden, dass jeder zugelassene Nutzer nur einmal den Fragebogen abschicken kann. Welcher Nutzer zugelassen wird, muss mit Hilfe des Webservers konfiguriert werden. Diese Variante kehrt das Paradigma der anonymen Umfrage ins Gegenteil um und erlaubt hingegen eine personalisierte Umfrage.

Im Falle der Verwendeung von ID-Nummern müssen Listen mit TAN-Codes generiert werden. In diese Listen wird auch die URL des auszufüllenden Fragebogens eingetragen. Dieser Wert ist im baseurl-Attribut zu hinterlegen.

Wird eine Prüfung der ID-Nummern vorgenommen, dann kann es vorkommen, dass eine Nummer bereits verwendet wurde. Die Ausgabe, die XQuest dann erzeugt, kann im failused-Unterelement des submit-Elements definiert werden. Ebenso kann mit dem failid-Unterelement ein Text definiert werden, wenn eine ungültige ID verwendet wurde.

Feste IDs

Normalerweise werden die Antworten automatisch nummeriert. In manchen Fällen ist es aber wünschenswert, vordefinierte Bezeichner zu vergeben. Zu diesem Zweck ist das Attribut id für Fragen bzw. Antwortfelder vorgesehen.

Das id-Attribut wird bei ...question-Elementen verwendet bei:

Das id-Attribut des atext-Elementes wird verwendet bei:

Das id-Attribut des input-Elements wird verwendet bei textquestions mit mindestens einem input-Element.

Wird kein id-Attribut verwendet, so wirkt natürlich die automatische Nummerierung der Fragen.

Modifizierte Datenwerte

Bei Auswahlfragen (xor bzw. dropdown) wird normalerweise als Wert die jeweilige Positionsnummer in der Elementeliste eingetragen. Wird beipielsweise die dritte Alternative selektiert, wird eine 3 abgespeichert. In manchen Situationen ist dies aber eine ungünstige Semantik. Daher besteht die Möglichkeit, bei Fragen dieser Art den abzuspeichernden Wert auf eine ganze Zahl einzustellen.

Dazu wird das Attribut value verwendet, welches bei den atext-Elementen angegeben werden muss. Einsetzen kann man es bei folgenden Fragetypen:

Hinweis!

Werden modifizierte Datenwerte verwendet, so müssen immer alle atext-Elemente einer Frage das value-Attribut gesetzt haben. Es können mehrere Elemente die gleichen Werte belegen, wenn es semantisch sinnvoll ist.

Wichtig!

Es können nur ganze Zahlen als values verwendet werden. Zeichenketten funktionieren nicht, weil diese nicht in die Datenbank eingetragen werden können.

Freitext in Auswahlfragen

Bei selectquestions vom Typ xor und or ist es möglich, in jeder Auswahl ein optionales input-Element einzufügen.

<selectquestion type="xor">
  <qtext>Eine andere Frage</qtext>
  <atext>Antwort a</atext>
  <atext>Antwort b</atext>
  <atext>Antwort c <input/></atext>
</selectquestion>

Erweiterte Auswertung

Wird das Attribut result-stats bei Frage-Elementen auf yes gesetzt, wird bei einigen Fragen der Durchschnitt und Standardabweichung der ausgewählten Alternativen im Auswertescript angezeigt.

Bei folgenden Fragetypen ist dies sinnvoll:

Parameter per Shell

Bis auf restrict können alle Attribute des Fragebogens auch als XSL-Parameter vom XSLT-Prozessor übergeben werden. (Damit lässt sich beispielsweise die Erzeugung vieler ähnlicher Fragebögen automatisieren.) Der Name der Parameter entspricht denen der Attribute.

  xsltproc --stringparam title "Fragebogentitel"  -o fb.html tohtml.xsl fb.xml

Zudem lassen sich einige Sonderfunktionen steuern:

with-ids (default: 0)
Erzeugt bei der Ausgabe der HTML-Version des Fragebogens im HTML sichtbare Fragenummern.
with-time (default: 0)
Aktiviert die Aufzeichnung der Startzeitpunktes und der Bearbeitungsdauer beim Ausfüllen des Fragebogens durch einen Teilnehmer. (Hinweis: Auch schon der Fragebogen selbst ist in diesem Falle ein PHP-Script)
with-ip (default: 0)
Speichert die IP-Nummern der Rechner, von denen die ausgefüllten Fragebögen an den Server geschickt werden.
with-user (default: 0)
Speichert das Nutzerkennzeichen des Nutzers, der den Fragebogen ausfüllt. (Hinweis: Erfordert, dass der Nutzer sich vorher beim Websserver authentifizieren muss.)
with-fnum (default: 1)
Beim Erzeugen der CSV-Datei werden die Spaltenbezeichner ausgegeben.
delim (default: ,)
Setzt das Trennzeichen für die einzelnen Felder in der CSV-Datei.
with-dbcreate (default: 1)
Beim Erzeugen der SQL-Datei wird die Anweisung zum Anlegen der Datenbank generiert.
with-dbgrant (default: 1)
Beim Erzeugen der SQL-Datei wird die Anweisung zum Modifizieren der Privilegien generiert.
with-progress (default: 0)
Unterhalb des Fragebogentitels wird eine kleine Fortschrittsanzeige angezeigt.

  xsltproc --param with-ip 1 -o fb.php tophp.xsl fb.xml
  xsltproc --param with-dbgrant 0 -o fb.sql tosql.xsl fb.xml
  xsltproc --param with-fnum 0 -o fb_csv.php tocsv.xml fb.xml

Navigation