Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
en:create:transfer-responses [31.03.2016 16:24]
hotaitde
en:create:transfer-responses [01.04.2016 15:44]
admin Formatting
Line 1: Line 1:
-Insert Answer Texts in Follow-up Questions +====== ​Insert Answer Texts in Follow-up Questions ​====== 
-Placeholders allow you to use participants‘ text inputs elsewhere in the questionnaire. This chapter provides you with a number of examples.+ 
 +[[::​en:​create:​Placeholders|Placeholders]] allow you to use participants‘ text inputs elsewhere in the questionnaire. This chapter provides you with a number of examples.
    
-Note: If in a follow-up question you only want to display specific scale items or select options dependent on the participant’s response, please refer to Use Selected Items In Another Question.+**Note:** If in a follow-up question you only want to display specific scale items or select options dependent on the participant’s response, please refer to [[:​en:​create:​filter-items]].
  
-Note: If you haven’t worked with filters and PHP code, please refer to chapters ​Introduction to PHP and Problem Solution for Filters ​first.+**Note:** If you haven’t worked with filters and PHP code, please refer to chapters ​[[:​de:​create:​php]] ​and [[:​de:​create:​filter-solving]] ​first.
  
  
-Use Single Answers +===== Use Single Answers ​=====
-On page 2 the participant mentioned the name of a TV presenter in a text input field (tagging TX01_01). Answer validation was applied to ensure the participant did enter something. The entered name is now to be included in following question texts or scale items. ​+
  
-In the first step, create a placeholder replace() for the name, e. g. %tvpresenter. In order to do so, place the following PHP code on page of the questionnaire following the text input question ​(eg. in the example on page 3 or later):+On page 2 the participant mentioned ​the name of a TV presenter in a text input field (tagging ''​TX01_01''​)Answer validation was applied to ensure the participant did enter somethingThe entered name is now to be included ​in following question texts or scale items. ​
  
- +In the first step, create a placeholder ''​[[:​en:​create:​functions:​replace]]''​ for the name, e. g. ''​%presenter%''​. In order to do so, place the following PHP code on a page of the questionnaire following the text input question (e. g. in the example on page 3 or later):
  
 +<code php>
 +replace('​%presenter%',​ '​TX01_01',​ '​response'​);​
 +</​code>​
  
-This placeholder can then be inserted anywhere in the questionnaire – of course, only after it was created via PHP code. For example, the question text of a question on page 3 could be as follows:+This placeholder can then be inserted anywhere in the questionnaire ​-– of course, only after it was created via PHP code. For example, the question text of a question on page 3 could be as follows:
  
-Please assess <​strong>​%tvpresenter%</​strong>​ with regard to the following characteristics.+<​code>​ 
 +Please assess <​strong>​%presenter%</​strong>​ with regard to the following characteristics. 
 +</​code>​
  
-Note: It is not possible to use replace() to display the participant’s entry immediately on the same page of the questionnaire. This function would require JavaScript.+**Note:** It is not possible to use ''​replace()'' ​to display the participant’s entry immediately on the same page of the questionnaire. This function would require ​[[:​en:​create:​javascript|JavaScript]].
  
-Note: In order to check if the placeholder functions correctly, you need to re-start the questionnaire from the beginning – or at least from the page with the text input field where the relevant name was entered (in the example on page 2).+**Note:** In order to check if the placeholder functions correctly, you need to re-start the questionnaire from the beginning – or at least from the page with the text input field where the relevant name was entered (in the example on page 2).
  
-Tip: Once a placeholder has been created, it remains valid for any following pages in the questionnaire. Repeating the PHP code on every page is not required. ​+**Tip:** Once a placeholder has been created, it remains valid for any following pages in the questionnaire. Repeating the PHP code on every page is __not__ ​required. ​
  
-Tip: The above described PHP code also allows you to enter predefined answers (e.g. from a multi-choice question) in follow-up questions.+**Tip:** The above described PHP code also allows you to enter predefined answers (e.g. from a multi-choice question) in follow-up questions.
  
-Tip: As an alternative,​ the participant’s entry can be read out via value() and subsequently be transferred to replace().+**Tip:** As an alternative,​ the participant’s entry can be read out via ''​[[:​en:​create:​functions:​value]]'' ​and subsequently be transferred to ''​[[:​en:​create:​functions:​replace]]''​.
  
- +<code php> 
 +$name = value('​TX01_01'​);​ 
 +replace('​%presenter%',​ $name); 
 +</​code>​
  
 +===== Insert Several Answer Texts =====
  
-Insert Several Answer Texts +A question of the question type "Text Input" ​(''​TX01''​__or__ "Free Mention" ​(''​TX02''​) is presented to the participant. Up to 10 answers can be chosen. In a follow-up question (e. g. multiple selection, rank, scale) the answers are to be displayed as items or options. ​
-A question of the question type Text Input” (TX01or “Free Mention” (TX02) is presented to the participant. Up to 10 answers can be chosen. In a follow-up question (e. g. multiple selection, rank, scale) the answers are to be displayed as items or options. ​+
  
-The problem in this example is that the participant might complete only part of the input fields. Consequently,​ the follow-up questions must only display the relevant items/​options. Also, it would mean a lot of extra work to write redirect() 10 times. A for-loop handles the iteration.+The problem in this example is that the participant might complete only part of the input fields. Consequently,​ the follow-up questions must only display the relevant items/​options. Also, it would mean a lot of extra work to write ''​redirect()'' ​10 times. A for-loop handles the iteration.
  
-In order for the follow-up question to function (e. g. FQ01) properly, create that question as follows: The number of items/​options in the question must equal the number of possible text inputs (in the example: 10), and texts used for the items/​options are placeholders,​ e. g.  %text1% to %text10%.+In order for the follow-up question to function (e. g. ''​FQ01''​) properly, create that question as follows: The number of items/​options in the question must equal the number of possible text inputs (in the example: 10), and texts used for the items/​options are placeholders,​ e. g. ''​%text1%'' ​to ''​%text10%''​.
  
- +<​code>​ 
 +%text1% 
 +%text2% 
 +%text3% 
 +%text4% 
 +%text5% 
 +%text6% 
 +%text7% 
 +%text8% 
 +%text9% 
 +%text10% 
 +</​code>​
  
-Tip: Of course, additional text may be added to the placeholders,​ e. g. evaluation%text1%.+**Tip:** Of course, additional text may be added to the placeholders,​ e. g. "evaluation %text1%".
  
-Via value() the following PHP code reads out all of  the ten possible text input fields, checks if an entry has been made, creates the placeholders %text1% to %text10% ​ and displays question FQ01 with the matching items/​options.+Via ''​[[:​en:​create:​functions:​value]]'' ​the following PHP code reads out all of  the ten possible text input fields, checks if an entry has been made, creates the placeholders ​''​%text1%'' ​to ''​%text10%'' ​and displays question FQ01 with the matching items/​options.
  
-Important: The PHP codes for “Text Input“ and “Free Mention” differ slightly in line 4, because the variables are determined according to different patterns (TX01_01” vs. TX02x01). +**Important:** The PHP codes for “Text Input“ and “Free Mention” differ slightly in line 4, because the variables are determined according to different patterns (''​TX01_01'' ​vs. ''​TX02x01''​).
- +
- +
  
-Explanatory note on the PHP code: The IF filter at the end ensures that the follow-up ​question ​is skipped if the participant has not completed the relevant fieldThrough ​trim() ​blank spaces at the beginning and end of the text entered are removed so that a number of blanks entered into a text field are not interpreted as a valid answer.  ​Through sprintf() with its parameter ​%02d it is ensured that numbers are displayed as double-digits with leading zeros (eg01 instead of 1).+^Text Input^Free Mentions^ 
 +|<code php> 
 +$question = '​TX01';​ 
 +$items = array(); 
 +for ($i=1; $i<=10; $i++) { 
 +  $itemID = $question.'​_'​.sprintf('​%02d',​ $i); 
 +  $answer = value($itemID);​ 
 +  if (trim($answer!= ''​) { 
 +    replace('​%text'.$i.'​%',​ $answer); 
 +    $items[] = $i; 
 +  
 +
 +// Folgefrage anzeigen 
 +if (count($items> 0) { 
 +  question('​FF01',​ $items); 
 +
 +</​code>​|<​code php> 
 +$question = '​TX02';​ 
 +$items = array(); 
 +for ($i=1; $i<=10; $i++) { 
 +  $itemID = $question.'​x'​.sprintf('​%02d', $i); 
 +  $answer = value($itemID); 
 +  if (trim($answer) != ''​) { 
 +    replace('​%text'​.$i.'​%',​ $answer)
 +    $items[] = $i; 
 +  } 
 +
 +// Folgefrage anzeigen 
 +if (count($items) > 0) { 
 +  question('​FF01',​ $items); 
 +
 +</​code>​|
  
-Note: If the PHP code does not provide ​the required results, please refer to chapter Problem Solution for Filters.+Explanatory note on the PHP code: The IF filter at the end ensures that the follow-up question is skipped if the participant has not completed ​the relevant field. Through ''​trim()''​ blank spaces at the beginning and end of the text entered are removed so that a number of blanks entered into a text field are not interpreted as a valid answer. ​ Through ''​sprintf()''​ with its parameter '''​%02d'''​ it is ensured that numbers are displayed as double-digits with leading zeros (e. g. ''​01''​ instead of ''​1''​).
  
 +**Note:** If the PHP code does not provide the required results, please refer to chapter [[:​en:​create:​filter-solving]].
  
  
en/create/transfer-responses.txt · Last modified: 01.04.2016 15:44 by admin
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
Driven by DokuWiki