SoSci Survey
Übersetzungen dieser Seite:
 

Basisfunktionen für Filterfragen, Fragen und Texte

Tipp: Hilfreiche Erläuterungen zur Verwendung dieser Funktionen gibt es auch im Kapitel Filterfragen und Filter.

  • value() - Eine Antwort des Befragten verwenden, z.B. für Filter
  • goToPage() - Zu einer anderen Seite springen
  • repeatPage() - Die letzte Seite erneut anzeigen
  • redirect() - Den Befragten zu einer anderen Website weiterleiten
  • question() - Eine Frage ausgeben
  • text() - Text oder HTML-Code innerhalb des Fragebogens ausgeben
  • debug() - Inhalt einer Interview- oder Daten-Variable anzeigen

value()

mixed value(string VariablenKennung, [string Ausgabeformat])

Mit dieser Funktionen können Antworten (Antwort-Codes, gewählte Optionen oder Texteingaben) des Teilnehmers ermittelt werden.

Wichtig: Es können nur solche Antworten abgefragt werden, welche der Teilnehmer auf einer früheren Fragebogen-Seite angegeben und bereits mit „Weiter“ an den Server übermittelt hat.

  • VariablenKennung
    Die Variablen-Kennung setzt sich meist (nicht immer!) aus Rubriken-, Fragen- und ggf. Item-Kennung zusammen (z.B. „XY01_02“). Die korrekte Kennung finden Sie immer in der Variablen-Übersicht (im Menü in SoSci Survey).
  • Ausgabeformat
    Mit dem Ausgabeformat wird festgelegt, ob die Funktion den Antwort-Code (Standard) oder den Beschriftungstext der Antwort zurückgibt. Folgende Angaben sind möglich:
    • 'label'
      Bei Texteingabe-Fragen wird der eingegebene Text, sonst der Antwortcode entsprechend der Variablen-Übersicht (wird auch zurückgegeben, wenn kein Antwortformat angegeben ist)
    • 'text'
      Beschriftung der Antwortoption wie im Fragebogen
    • 'free'
      Beschriftung sowie eine offene Texteingabe des Teilnehmers bei „Sonstiges“-Optionen

Tipp: Siehe auch Filterfragen und Filter.

Beispiel: Der Befragte hat die Frage 07 in der Rubrik AB (eine dichotome Skala) auf der vorhergehenden Seite beantwortet. Folgender Code zeigt die Frage XY01 nur dann an, wenn der Teilnehmer das Item 03 der Frage AB07 mit „ja“ (in diesem Fall also der Ausprägung 2) beantwortet hat:

if (value('AB07_03') == 2) {
  question('XY01');
}

Beispiel: Der Teilnehmer kann sein Lieblings-Schulfach auswählen oder bei „Anderes“ selbst eintragen. Das Fach soll auf einer späteren Seite angezeigt werden (s. auch Platzhalter in Fragen und Items).

$fach = value('AB08', 'free');
html('<h1>Schulfach: '.$fach.'</h1>');

goToPage()

void goToPage(string Seitenkennung)

Springt (ohne weitere Befehle der aktuellen Seite auszuführen) direkt zu einer anderen Seite des Fragebogens und zeigt die Fragen dort an. Falls auf der aktuellen Seite bereits Fragen oder Text ausgegeben wurden, wird der Inhalt der andere Seite direkt angehängt. Mit goToPage() werden also u.U. die Inhalte mehrerer Fragebogen-Seiten auf einer Seite angezeigt.

  • Seitenkennung
    Für die andere Seite (das Sprungziel) muss man beim Zusammenstellen des Fragebogens eine Kennung vergeben (oben in der Fragebogen-Seite einzutragen). Diese Kennung kann man anschließend in goToPage() verwenden

Anstatt einer eingetragenen Kennung können auch 'end' und 'next' verwendet werden.

  • Der Befehl goToPage('end') beendet die Befragung umgehend und zeigt die letzte Seite (Befragung beenden).
  • Der Befehl goToPage('next') springt immer zur folgenden Seite im Fragebogen.

Wichtig: Man kann die Texte 'end' und 'next' auch als Kennungen für existierende Seiten eintragen. In diesem Fall werden die Sonderfunktionen dieser Kennungen deaktiviert und goToPage() springt zu den entsprechenden Seiten.

PHP-Code – Seite 1

question('AB02');  // Mehrfachauswahl mit 8 Items

PHP-Code – Seite 2

if (value('AB02_07') == 2) {  // Prüft, ob Item 7 angekreuzt wurde (=Wert 2)
  goToPage('pa');             // Für Seite 3 ist die Kennung pa eingestellt 
}
question('XY01', '1,3,4,5');  // Diese Frage wird __nur__ gezeigt, wenn
                              // Item 7 nicht ausgewählt wurde - sonst ist
                              // SoSci Survey schon längst auf Seite 3

PHP-Code – Seite 3 mit Kennung „pa“

question('XY02');  // Diese Frage sehen wieder alle Teilnehmer
                   // Aber Frage XY01 auf Seite 2 wurde ggf. übersprungen

Tipp: Falls Sie eine Seite erneut anzeigen möchten, weil die Angaben des Teilnehmers unvollständig waren, verwenden Sie statt 'goToPage() die Funktion repeatPage(). So bleibt der Zurück-Knopf im Fragebogen voll funktionstüchtig.

goToPage('end')

void goToPage('end')

Beendet die Befragung sofort. Falls auf der aktuellen Seite bereits Fragen ausgegeben wurden, werden diese nicht mehr angezeigt. Verwenden Sie diesen Befehl daher nicht auf einer Seite, deren Inhalt noch angezeigt werden soll. Stellen Sie das goToPage('end') ggf. an den Anfang der folgenden Seite.

Hinweis: Verwenden Sie die Kennung end nicht für eine existierende Seite im Fragebogen. Sonst führt der Befehl goToPage('end') zu dieser Seite und beendet das Interview nicht mehr.

Tip: Wenn Sie das Interview beenden möchten, aber einen anderen Text anzeigen möchten, verwenden Sie nicht goToPage('end'). Legen Sie stattdessen eine Seite an, fügen Sie dort als Textbaustein den gewünschten Text ein und verwenden Sie den Befehl buttonHide(). Der Teilnehmer kann dann diese Seite nicht mehr verlassen – das Interview ist faktisch beendet, allerdings wird es im Datensatz nicht als abgeschlossen (FINISHED) markiert.

PHP-Code – Befragung beenden

if (value('AB01') < 2) {
  goToPage('end');
}

repeatPage()

void repeatPage([string Textbaustein])

Die Funktion repeatPage() zeigt die vorhergehende Seite erneut an.

  • Textbaustein (optional)
    Falls die Kennung eines Textbausteins angegeben wird (Anlegen unter Textbausteine und Beschriftung), so wird der Textbaustein als Hinweis zu Beginn der wiederholten Seite angezeigt. Der Textbaustein wird dabei genauso formatiert wie andere Meldungen zu fehlenden/fehlerhaften Angaben.

Diese Funktion ist vor allem dann sinnvoll, wenn die Angaben des Befragten auf Ihre Gültigkeit hin überprüft werden. Viele Überprüfungen kann man direkt in der Frage oder dem Item aktivieren (z.B. prüfen, ob alle Items einer Skala ausgefüllt wurden oder ob ein bestimmtes Textformat eingehalten wurde), aber manchmal muss man die Prüfung mittels PHP-Code selbst programmieren. Falls diese Prüfung negativ ausfällt, kann man mit text() einen Textbaustein mit passender Fehlermeldung anzeigen und den Teilnehmer anschließend mit repeatPage() zur vorigen Seite zurück schicken.

Hinweis: Eine Prüfung auf ungültige Antworten sollte stets zu Beginn der (auf die geprüfte Frage folgenden) Fragebogenseite durchgeführt werden.

redirect()

void redirect(string URL, [boolean Fortsetzen])

Die Funktion redirect() leitet den Teilnehmer direkt zu der Website mit der angegebenen URL weiter.

  • URL
    Internet-Adresse, zu welcher der Teilnehmer umgeleitet werden soll. In der URL kann man Platzhalter verwenden, um beispielsweise eine Panel-Kennung weiterzugeben (Mit externen Panel-Anbietern arbeiten).
  • Fortsetzen
    Gibt man außer der URL keinen weiteren Parameter an, so wird das Interview durch den Befehl beendet. Das ist vor allem dann sinnvoll, wenn man die Teilnehmer quotieren möchte und dafür die Funktion statistic() nutzt. Gibt man als zweiten Parameter true an, so kann der Befragte den Fragebogen später auf der nachfolgenden Seite fortsetzen.

Hinweis: Damit eine spätere Fortsetzung der Befragung möglich ist, muss die andere Internet-Seite den Teilnehmer nicht nur zurückschicken, sondern auch die Interview-Kennung übergeben, z.B. https://www.soscisurvey.de/projekt?i=WBE0R7V8 – ein späterer Aufruf via personalisiertem Link mit Seriennummer ist ebenfalls möglich.

Hinweis: Ein redirect() sollte immer alleine auf der Fragebogen-Seite stehen. Andere Befehle (z.B. eine Frage), die vor dem Befehl stehen, werden zwar ausgeführt, aber es wird nichts angezeigt. Befehle, die hinter dem redirect() stehen, werden vollständig ignoriert.

PHP-Code

redirect('http://www.panel.tld/quotaout.php?panelID=%reference%', false);

question()

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

Zeigt im Fragebogen die Frage mit der angegebenen FrageKennung an.

  • FrageKennung
    Die Kennung setzt sich aus der Kennung von Rubrik und Frage zusammen (jeweils zweistellig), z.B. „XY01“.
  • Items
    Optional kann eine zweite Angabe Items einschränken, welche Items der Frage gezeigt werden sollen und/oder in welcher Reihenfolge dies geschieht. Die Kennungen der Items werden dabei durch ein Komma getrennt. Für die Itemliste können auch Zahlenbereiche angegeben werden, z.B. „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 jetzt Option in Anführungszeichen und trennen Sie mehrere Optionen durch Kommata (s. Beispiele unten).
    • random
      Die items der Frage werden in zufälliger Reihenfolge ausgegeben
    • random=<n>
      Es werden <n> Items zufällig ausgewählt und in zufälliger Reihenfolge ausgegeben
    • 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 (spacing=0 wirkt wie parent)
    • number=<n>
      Zeigt vor der Frage die Nummer <n> an (statt automatisch hochzuzählen) oder blendet die Nummer mit „number=no“ ganz aus.Sie können die Nummerierung im Fragebogen übrigens auch ganz abschalten. Mit der Option number=<n> oder number=yes können Sie dann einzelne Frage mit einer Nummer versehen.
    • anchor=<Anzahl>
      Wiederholen der Verankerung (Vorspann, grafische, numerische und verbale Verankerung) einer Skala oder eines Polartitätenprofils alle <Anzahl> Items. Sinnvoll bei sehr langen Fragen.
    • anchor=none
      Blendet die Verankerung (Vorspann, grafische, numerische und verbale Verankerung) einer Skala oder eines Polartitätenprofils komplett aus.
    • combine=<Kennung andere Frage>
      Erzeugen einer kombinierten Frage (Kombinierte Fragen).
    • gap=<Angabe>
      Abstand zwischen den Eingabefeldern einer kombinierten Frage in Pixel (z.B. „gap=20“) oder „gap=line“ um eine Linie zwischen den Fragen anzuzeigen. Der Abstand oder die Linie wird zwischen allen kombinierten Fragen gleichermaßen angezeigt.
    • filter=<Angabe>
      Präfix für Datenbank-Schlüssel in einer Frage vom Typ „erweiterte Auswahl“ (z.B. „filter=country“ zur Anzeige aller Datenbank-Einträge, deren Schlüssel mit „country“ beginnt).

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: Die Itemliste kann entweder als String oder als Array übergeben werden. „1,2,3“ hat dieselbe Wirkung wie array(1,2,3). Letzteres ist vor allem dann nützlich, wenn man mit der Funktion getItems() arbeitet und/oder Array-Operationen verwendet.

PHP-Code – Beispiel

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');   // Zeigt den Fragetext nicht an

PHP-Code – Beispiel

question('BS07', array(1,2,3,4,6));  // Liste der Items als Array
question('BS07', '1-4,6');  // Liste der Items mit Bereich

text()

void text(string TextKennung, [string Optionen])

Gibt an der Stelle im Fragebogen einen Textbaustein aus. Textbausteine werden unter Fragebogen-Texte angelegt. So lassen sich längere Texte (z.B. eine Begrüßung) in den Fragebogen einbauen.

  • TextKennung
    Kennung des Textbausteins
  • Optionen
    Optional kann eine Darstellungs-Option angegeben werden. Die Option muss in Anführungszeichen (einfach oder doppelt) stehen (siehe Beispiel). Derzeit unterstützt die Funktion nur eine Option.
    • spacing=<n>
      Fügt unter dem text zusätzlichen Abstand (n Pixel) zur nachfolgenden Frage ein

Tipp: In den Texten können Sie auch dynamische Platzhalter verwenden, z.B. um einzelne Wörter im Interview auszutauschen (siehe Platzhalter in Fragen und Items).

Tipp: Formatieren Sie die Texte bei der Eingabe mit HTML-Tags, um Überschriften, Absätze, fett-Schrift oder Umbrüche zu definieren (siehe Texte im Fragebogen).

Vorsicht: Jeder andere Versuch (z.B. mit dem PHP-Befehl echo) direkt Text auszugeben, schreibt nicht an die aktuelle Stelle (z.B. zwischen zwei Fragen), sondern an den Anfang des Dokuments. Daher kann der Befehl echo im PHP-Code nicht verwendet werden.

PHP-Code – Seite 1

text('welcome');  // Zeigt die Begrüßung, die unter "Fragebogen-Texte"
                  // als Text mit Kennung "welcome" gespeichert wurde

PHP-Code – Seite 2

text('explanation', 'spacing=32');  // Lässt 32 Pixel Abstand unter dem Text
question('AB01');

debug()

void debug(mixed Inhalt)

Die Funktion debug() zeigt im Debug-Modus bequem den Inhalt einer PHP-, Daten- oder Interviewvariable an.

Hinweis: Der Inhalt der jeweiligen Variable wird als Debug-Information nur dann angezeigt, wenn man den Fragebogen im Debug-Modus startet.

  • Inhalt
    Der Parameter Inhalt kann die Kennung einer Daten-Variable (Beispiel 1) oder einer Interview-Variable (Beispiel 2) sein (Variablen). Man kann der Funktion debug() auch eine PHP-Variable übergeben (Beispiel 3), dann wird der Inhalt dieser Variable angezeigt.

Beispiel 1

// Filter für die Auswahl AB01 prüfen
debug('AB01');
if (value('AB01') == 2) {
  goToPage('end');
}

Beispiel 2

// Zufallszahl und eine Liste (1,2,3) als Interview-Variablen speichern
$zufall = random(1,10);
set($zufall, 'zufallszahl');
set(array(1,2,3), 'itemliste');
// Interview-Variablen mit debug() anzeigen
debug('TS08_01'); // Frage TS08 steht auf Seite 1
debug('zufallszahl');
debug('itemliste');

Beispiel 3

// PHP-Variable direkt anzeigen
$itemliste = getItems('BB02', 'min', 2);
debug($itemliste);

Anzeige der Inhalte in der Debug-Information

de/create/functions-base.txt · Zuletzt geändert: 23.01.2014 11:28 von cerabide
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 3.0 Unported
Driven by DokuWiki