Mithilfe von Platzhaltern können Texte im Fragebogen (z.B. Fragetexte, Items, Stimuli) dynamisch angepasst werden. Eine ausführliche Anleitung ist im Kapitel Platzhalter nachzulesen. Die Funktion replace()
bereitet einen Platzhalter zur Verwendung im Fragebogen vor.
void replace(string Platzhalter, string Inhalt, [string Typ])
%
), bitte beachten Sie die Regeln für benutzerdefinierte Platzhalter.'text
' – (Standard) Der Inhalt soll als gewöhnlicher Text interpretiert werden.'html
' – Der Inhalt soll als HTML-Code interpretiert werden, HTML-Sonderzeichen (wie <
oder >
) werden unmaskiert in den Quellcode des Fragebogens übernommen.'response
' – Als Inhalt ist eine Variablen-Kennung angegeben, der Platzhalter soll durch die Antwort des Teilnehmers auf diese Variable ersetzt werden. Die Antwort wird äquivalent zu value(..., 'text')
ermittelt.replace(…, 'response')
darf daher nicht auf derselben Seite verwendet werden wie die Frage, sondern frühestens auf der darauf folgenden Seite.'special
' – Geben Sie eine der folgenden Kennungen als Inhalt an, um dynamische Inhalte für den Platzhalter zu verwenden:'qn-
' – Die letzte als Frage-Nummer angezeigte Nummer (z.B. um sich bei dynamischer Nummerierung im Text auf die letzte Frage zu beziehen).'qn+
' – Eine neue Frage-Nummer erstellen (z.B. um eigene Formularelemente mit einer Nummer zu versehen).
Wichtig: replace()
muss vor/über dem Element stehen, wo der Platzhalter ersetzt werden soll. Wenn der Platzhalter %test%
also z.B. im Textbaustein „instruction“ verwendet wird, dann muss im Fragebogen zuerst der Befehl replace('%test%', …)
aufgerufen werden und danach/darunter erst der Textbaustein. replace()
kann entweder auf der gleichen Seite über dem Textbaustein stehen oder auf einer früheren Seite im Fragebogen.
Hinweis: Damit der Befehl replace()
auf eine Antwort des Teilnehmers zugreifen kann (dritter Parameter 'response
'), ist es erforderlich, dass der Teilnehmer „Weiter“ klickt, bevor replace()
ausgeführt wird. Wie auch bei der Funktion value()
darf replace(…, 'AB01', 'response')
also nicht auf der gleichen Seite stehen wie die Frage AB01.
// %marke% durch "SoSci Survey" ersetzen replace('%marke%', 'SoSci Survey'); // %marke% durch H20 (mit per HTML-Code tiefgestelltem 2) ersetzen replace('%marke%', 'H<sub>2</sub>O', 'html'); // %antwort% durch die Antwort des Teilnehmers auf die offene Texteingabe AB01_01 ersetzen replace('%antwort%', 'AB01_01', 'response'); // %antwort% durch die Antwort des Teilnehmers in der einfachen Auswahlfrage AB02 ersetzen replace('%antwort%', 'AB02', 'response'); // %nummer% durch eine neue Frage-Nummer ersetzen replace('%nummer%', 'qn+', 'special'); html('<div class="title">%nummer%. Bitte wählen Sie hier ...</div>');