====== replace() ====== Mithilfe von Platzhaltern können Texte im Fragebogen (z.B. Fragetexte, Items, Stimuli) dynamisch angepasst werden. Eine ausführliche Anleitung ist im Kapitel [[:de:create:placeholders|Platzhalter]] nachzulesen. Die Funktion ''replace()'' bereitet einen Platzhalter zur Verwendung im Fragebogen vor. ''void **replace**(string //Platzhalter//, string //Inhalt//, [string //Typ//])'' * //Platzhalter//\\ Der Platzhalter, der nachfolgend verwendet werden soll. Ein Platzhalter steht zwischen Prozent-Zeichen (''%''), bitte beachten Sie die [[:de:create:placeholders#regeln_fuer_benutzerdefinierte_platzhalter|Regeln für benutzerdefinierte Platzhalter]]. * //Inhalt//\\ Normalerweise der Text, der anstatt des Platzhalters verwendet werden soll. Abhängig vom nachfolgend spezifizierten Typ ist auch die Angabe einer Variablen-Kennung möglich. * //Typ// * '''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 ''[[:de:create:functions:value|value(..., 'text')]]'' ermittelt.\\ **Wichtig:** Der Teilnehmer muss die Antwort zunächst via "Weiter" an den Server übermitteln, bevor diese mittels PHP-Code abgerufen werden kann. ''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 [[:de:create:inputs-custom|eigene Formularelemente]] mit einer Nummer zu versehen). ===== Hinweise ===== **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 ''[[:de:create:functions:value]]'' darf ''replace(..., 'AB01', 'response')'' also nicht auf der gleichen Seite stehen wie die Frage AB01. ===== Beispiele ===== // %marke% durch "SoSci Survey" ersetzen replace('%marke%', 'SoSci Survey'); // %marke% durch H20 (mit per HTML-Code tiefgestelltem 2) ersetzen replace('%marke%', 'H2O', '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('
%nummer%. Bitte wählen Sie hier ...
');