====== 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 =====

<code php>
// %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>');
</code>