Tipp: Hilfreiche Erläuterungen zur Verwendung dieser Funktionen gibt es auch im Kapitel Filterfragen und Filter.
mixed value(string VariablenKennung, [string Ausgabeformat])
Mit dieser Funktionen können Antworten (Antwort-Codes, gewählte Optionen oder Texteingaben) des Teilnehmers ermittelt werden. Es können allerdings nur solche Antworten abgefragt werden, welche der Teilnehmer auf einer früheren Fragebogen-Seite angegeben und bereits mit „Weiter“ an den Server übermittel hat.
Tipp: Siehe auch Filterfragen und Filter.
Beispiel: Der Befrage 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>');
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.
goToPage()
verwenden
Anstatt einer eingetragenen Kennung können auch 'end
' und 'next
' verwendet werden.
goToPage('end')
beendet die Befragung umgehend und zeigt die letzte Seite (Befragung beenden).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 edeaktiviert 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.
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'); }
void repeatPage([string Textbaustein])
Die Funktion repeatPage()
zeigt die vorhergehende Seite erneut an.
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.
void redirect(string URL, [boolean Fortsetzen])
Die Funktion redirect()
leitet den Teilnehmer direkt zu der Website mit der angegebenen URL weiter.
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);
void question(string FrageKennung, array|string Items, [string Optionen])
Zeigt im Fragebogen die Frage mit der angegebenen FrageKennung an.
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
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.
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');
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.
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);