====== replace() ======

With the help of placeholders, text in the questionnaire (e.g. question titles, items, stimuli) can be dynamically adapted. For detailed instructions, please see the chapter [[:en:create:placeholders|Placeholders]]. The function ''replace()'' sets up a placeholder for use in the questionnaire.

''void **replace**(string //placeholder//, string //content//, [string //type//])''

  * //placeholder//\\ The placeholder subsequently used. A placeholder is put between percentage signs (''%''). Please take the [[:en:create:placeholders#customized_placeholder_rules|rules for customized placeholders]] into consideration.
  * //content//\\ Normally the text used instead of the placeholder. Depending on the type specified afterwards, a variable ID could also be stated here.  
  * //type//
    * '''text''' -- (default) The //content// is read as plain text.
    * '''html''' -- The //content// is read as HTML code. HTML special characters (such as ''<'' or ''>'') are tranferred unmasked into the questionnaire's source code. 
    * '''response'''  A variable ID is specified as the //content//. The placeholder should be replaced with the response of the participant to this variable. The way the response is determined is equivalent to ''[[:en:create:functions:value|value(..., 'text')]]''. **Note:** The participant must first transmit the response to the server with "Next" before it can be called up with PHP code. Therefore, ''replace(..., 'response')'' must not be used on the same page as the question; on the following page at the earliest. 
    * '''special''' -- Use one of the following IDs as //content// to employ dynamic data for the placeholder:
      * '''qn-''' -- The last number used for a question (e.g., to refer to the previous question in instructions).
      * '''qn+''' -- Create a new question number (e.g., to add a number to [[:en:create:inputs-custom|custom form inputs]]).


====== Notes ======

**Important:** ''replace()'' must be placed before or above the element containing the placeholder. If the placeholder ''%test%'' is used e.g. in the text module "instruction", then the command ''replace('%test%', ...)'' must be invoked in the questionnaire before/above the text element. ''replace()'' can either be on the same page above the text module or on a previous page in the questionnaire.

**Note:** To allow the ''replace()'' function to access a response from the participant (third parameter '''response'''), the participant must click "Next", __before__ ''replace()'' is invoked. As with the function ''[[:en:create:functions:value]]'', ''replace(..., 'AB01', 'response')'' must not be on the same page as question AB01.


===== Examples =====

<code php>
// Replace %brand% with "SoSci Survey" 
replace('%brand%', 'SoSci Survey');

// Replace %brand% with H20 (with 2 as a subscript with HTML code) 
replace('%brand%', 'H<sub>2</sub>O', 'html');

// Replace %response% with the response of the participant to the free text input AB01_01 
replace('%response%', 'AB01_01', 'response');

// Replace %response% with the response of the participant to the single selection question AB02 
replace('%response%', 'AB02', 'response');

// Replace %number% by a new question number
replace('%number%', 'qn+', 'special');
html('<div class="title">%number%. Please select the ...</div>');
</code>