Translations of this page:

Table of Contents


void question(string|array questionID, array|string items, [string options])

Shows the question with the specified questionID in the questionnaire. The function question() is mainly used with Filters and Conditional Questions.

  • questionID
    • The four-digit ID is composed of the ID of the section and the question (both two-digit) and must be given in quotation marks (single or double), e.g. 'XY01'.
    • (array) You can also specify an array with multiple question IDs. These are then displayed as combined question, just like when using the parameter combine=….
  • items
    The second parameter can optionally be used to specify which items in the question should be shown and/or in what order this occurs. The item IDs are either specified as an array (array(2,4,6,8)) or separated with a comma as a string ('2,4,6,8'). In order to describe items 1, 3, 5, 6, 7, 8, 9 and 10, number ranges can also be specified in the item list, e.g. '1,3,5-10' or array(1,3,'5-10').
  • options
    There is a large range of options available for fine-tuning. Any number of options can be specified for each question() command. Put each option in quotation marks (single or double) and separate multiple options with commas (see example below).
    • 'show-title=no'
      Question title is not shown, numbering is suspended
    • 'show-explanation=no'
      Explanation/instructions are not shown.
    • 'show-items=no'
      Items are not shown.
    • 'spacing=<n>'
      Spacing beneath the question in pixels.
    • 'number=<n>'
      Shows the number <n> before the question instead of automatically incrementing or hides the number completely with “number=no”.
      Tip: You can also turn off numbering in the questionnaire in general (Compose QuestionnaireSettings). You can then give individual questions a number with the option number=<n> or number=yes.
    • 'anchor=<number>'
      Repeats the anchor (lead text, graphic, numeric and verbal anchor) in a scale or a polarity profile every <number> of items. Sensible for questions with a large number of items.
    • 'anchor=none'
      Completely hides the anchor (lead text, graphic, numeric and verbal anchor) in a scale or a polarity profile.
    • 'random'
      Items in a question are output in a random order. This parameter overwrites the setting for item sorting in the question dynamically.
    • 'random=<n>'
      <n> items are selected at random and output in a random order.
    • 'combine=<ID of a different question>'
      Creates a combined question. (Combined Questions).
    • 'gap=<specification>'
      Spacing between the input fields in a combined question in pixels (e.g. 'gap=20').
    • 'gap=line'
      Display a line between the combined questions. The space or the line is displayed equally between all combined questions.
  • options
    Some options are intended to dynamically overwrite the question's settings:
    • 'filter=<specification>'
      Prefix for the database key in a question type “Extended Selection” or “Suggesting Text Input” (e.g. 'filter=country' to show all database entries whose key begins with “country”). To allow the correct encoding of a response in the suggesting text input, at least a part of the prefix mus be set in the question itself as prefix. The parameter in question() can then narrow down these options.
    • 'direction=<up|down>'
      Arrange selection options in a scale or in a horizontal selection in ascending (up) or descending (down) order.
    • 'composition=<default|extended|dense>'
      Customize setting for Composition of a Question .
    • 'align-labels=<center|inside|outside|eachline>'
      Customize alignment of the verbal anchor in a scale with only the extremes labeled. This parameter overwrites the respective setting in the question dynamically.
    • 'shading=<auto|none|start-shaded|start-unshaded|all-shaded|all-unshaded>'
      Item shading.
    • 'flip-inputs'
      In most questions you can set whether the input fields (e.g. check boxes) should be on the left or right side of the labels. With this parameter you can invert the setting.


Note: Calling up the function question() is equivalent to the drag & drop of a question into the questionnaire. If you integrate the command question() into a question (e.g. in a filter) make sure that the same question is not put on the page again via drag & drop. Otherwise, the question appears twice.

Note: SoSci Survey differentiates between upper and low case for the ID and all options.

Note: Both the ID as well as other options must be quoted as a string; as a rule in quotation marks (single or double). Please see examples.

Tip: You can only show items dynamically that the participant selected in another question. For more details please see Use Selected Items in Another Question.

Tip: You do not have to type the question() command by hand. You can just drag & drop a question into a PHP code element. See Introduction to PHP Code: Comfortable Programming (Questions and Texts).


question('BS10');  // Daily television use
question('BS01', '2,1,4,5');  // items 2, 1, 4 and 5 are called up
question('NH02', 'random=3');  // 3 items selected at random
question('AA01', 'show-title=no');  // hide question title
// The following three lines each show items 1 to 4 and 6 in question BS07
question('BS07', array(1,2,3,4,6));
question('BS07', array('1-4',6));
question('BS07', '1-4,6');
question('SK01', 'spacing=4');  // Display a scale and directly beneath ...
question('SK02', '1', 'show-title=no');  // ... the first item of a free text input "Other: ___"
en/create/functions/question.txt · Last modified: 29.09.2020 16:51 by sophia.schauer
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
Driven by DokuWiki