SoSci Survey
Übersetzungen dieser Seite:
 

Platzhalter in Fragen und Items

oFb bietet die Möglichkeit, die Texte in Fragen oder Items variabel zu gestalten – also z.B. Titel oder Erklärung einer Frage, oder den Text einzelner Items. Dazu werden Platzhalter in der Form %name% verwendet.

Bei der Ausgabe versucht oFb dann, den Platzhalter zu ersetzen. Dazu sucht oFb nach dem „richtigen“ Text. Damit das funktioniert, müssen Sie den Inhalt vorher mit set() oder prepare_input() festlegen. Sonst erhalten Sie im Fragebogen eine Fehlermeldung.

Tipp: Platzhalter funktionieren in nahezu allen Texten, von der Frage selbst über Items, Textbausteine, HTML-Code Elemente u.s.w.

Tipp: Eine Anwendung von Platzhalter ist es, einzelne Eingabefelder an fast beliebiger Stelle im Fragebogen zu platzieren (Eingabefelder frei platzieren).

Wie funktioniert es?

Eine sehr einfache Verwendung von Platzhaltern zeigt das folgende Beispiel.

Auf Seite 2 wird der Speicherplatz „name“ mit der Funktion set() belegt, anschließend wird die Frage DC01 gestellt, in der an mehreren Stellen der Platzhalter %name% vorkommt.

// Seite 1
// Dieses Beispiel setzt voraus, dass die Items
// der Frage DC01 (Typ Skala) folgende Itemtexte haben:
//
// DC01_01: "Herr %name% hat mich ausführlich beraten."
// DC01_02: "Ich würde Herrn %name% weiterempfehlen."
//
// Die Frage soll lauten:
// Sie wurden zuletzt von Herrn %name% behandelt.
// Inwieweit können Sie den folgenden Aussagen zustimmen?
// Hier wird zunächst gefragt, bei wem der Interviewpartner in Behandlung war
// DC02 sei eine Auswahl mit den zwei Items (1) Müller und (2) Maier
question('DC02');
// Seite 2
// Nun wird - je nach Antwort des Interviewpartners - ein Platzhalter gesetzt
if (value('DC02') == 1) {
  set('Müller', 'name');
} elseif (value('DC02') == 2) {
  set('Maier', 'name');
}
// Nun kann die Frage DC_01 gestellt werden.
// Alle Stellen mit %name% werden automatisch durch Müller bzw. Maier ersetzt
question('DC01');

Regeln für Platzhalter

  • Nach dem öffnenden Prozent-Zeichen (%) darf kein Leerzeichen folgen
  • Vor dem schließenden Prozent-Zeichen darf kein Leerzeichen stehen
  • Zwischen den beiden Prozent-Zeichen darf kein weiteres Prozent-Zeichen stehen
  • Die Platzhalter-Kennung zwischen den Prozent-Zeichen darf maximal 64 Zeichen lang sein

Standard-Platzhalter

Folgende Platzhalter stehen (ab oFb 2.3.01) immer zur Verfügung, diese Kennungen dürfen nicht mit anderen Inhalten belegt werden:

KennungBeschreibungVariable im DatensatzPHP-Funktion
caseNumberFortlaufende Nummer des InterviewsCASEcaseNumber()
caseSerialSeriennummer des InterviewsSERIALcaseSerial()
caseTokenInterne Kennung des Interviews-caseToken()
referenceReferenz, die an den Fragebogen übergeben wurdeREFreference()
logoHTML-Code für das aktive Logonur für das HTML-Template im Layout
imprintHTML-Code für das Impressumnur für das HTML-Template im Layout
progressHTML-Code für den Fortschrittsbalkennur für das HTML-Template im Layout
headHTML-Code für den Kopfbereich im Layout-Templatenur für das HTML-Template im Layout
questionnaireHTML-Code für den Inhalte im Layout-Templatenur für das HTML-Template im Layout

Beispiele

Bei folgenden Beispielen ist in Klammern jeweils die Kennung des Platzhalters angegeben:

  • Ich finde %marke% gut („marke“)
  • %automarke% sieht billig aus („automarke“)
  • Mit dem Produkt %Marke des Produkts% verbinde ich… („Marke des Produkts“)
  • Wort%teile% können genauso ersetzt werden („teile“)

Anspruchsvollere Verwendung

Eine effiziente Verwendung von Platzhaltern setzt Grundkenntnisse in der Programmierung mit PHP voraus (PHP-Code, Umgang mit Variablen).

Das folgende Beispiel zeigt, wie Platzhalter zusammen mit Zufallsvariablen verwendet werden können:

// Seite 1
// Dieses Beispiel setzt voraus, dass die Items folgenden Itemtext haben:
// AB01_01: "Ich finde %marke% besser als oFb"
// AB01_02: "%marke% wirkt eher künstlich"
//
// Die Frage soll lauten:
// Bitte beurteilen Sie folgende Aussagen zu %marke%!
// Hier werden zunächst verschiedene Marken in ein Array gespeichert
$marken = array(
  'Ammerseebach',
  'Breitenwiesen-Autos',
  'Changuella'
);
// Eine dieser Marken wird per Zufall ausgewählt
$zufallszahl = random(0,2);
$zufaellige_marke = $marken[$zufallszahl];
// Und in die interne Variable marke gespeichert
set($zufaellige_marke, 'marke');
// Nun kann die Frage gestellt werden. Alle %marke% werden automatisch
// mit der zufällig ausgewählten Marke ersetzt
question('AB01');

Hinweis: Um die Ergebnisse auch auswerten zu können, ist es sinnvoll die „flüchtige“ Variable mit put() auch im Datensatz zu speichern!

Beispiel für die Verwendung von Platzhaltern

Antworten des Teilnehmers verwenden

Wenn man die (Text-)Angabe eines Teilnehmers weiter hinten im Fragebogen aufgreifen will, ist das mit Platzhaltern ebenfalls recht einfach zu bewerkstelligen. Man muss lediglich darauf achten, dass der Fragebogen auch funktioniert, wenn der Teilnehmer nichts (oder nur Leerzeichen) angibt.

Texteingabe

Folgender PHP-Code geht von zwei Annahmen aus:

  1. In der Texteingabe TX01_01 wurde eine Marke angegeben
  2. Dieser PHP-Code steht nicht auf derselben Seite wie TX01
// Antwort des Teilnehmers auslesen
$marke = value('TX01_01');
// Leerzeichen entfernen
$marke = trim($marke);
// Reagieren, wenn nichts eingegeben wurde
if ($marke == '') {
  goToPage('next'); // Seite überspringen
}
// Platzhalter %marke% vorbereiten
set($marke, 'marke');
// Text oder Frage mit Platzhalter %marke% einbinden
// (alternativ auch durch einfaches in-die-Seite ziehen)
question('AB01');

Auswahlfrage

Im folgenden Beispiel soll die Auswahl als Text angezeigt werden, die in einer Auswahl (einfache Auswahl oder Dropdown) gewählt wurde. Voraussetzung ist:

  1. In Auswahl AU01 wurde eine Obstsorte ausgewählt
  2. Dieser PHP-Code steht nicht auf derselben Seite wie AU01

Tipp: Lesen Sie auch die Anleitung zur Funktion value().

// Erst einmal prüfen, ob überhaupt etwas ausgewählt wurde
if (value('AU01') < 0) {
  // Rest der Seite überspringen
  goToPage('next');
}
 
// Antwort auslesen - diesmal nicht den Code (wie oben), sondern den Text
$text = value('AU01', 'text');
// Platzhalter %obst% vorbereiten
set($text, 'obst');
// Text oder Frage mit Platzhalter %obst% einbinden
// (alternativ auch durch einfaches in-die-Seite ziehen)
question('AB02');
de/create/placeholders.txt · Zuletzt geändert: 26.09.2013 19:31 von admin
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 3.0 Unported
Driven by DokuWiki