SoSci Survey
Übersetzungen dieser Seite:
 

Anzeige einer Fragebogen-Seite anpassen

  • option() - Darstellung der Seite anpassen (u.a. Fortschrittsanzeige, Weiter-Button)
  • preset() - Antwort für eine Frage vorgeben
  • prepare_input() - Eingabefeld für Integration in andere Frage vorbereiten
  • html() - Direkt HTML-Code innerhalb des Fragebogens ausgeben
  • textlink() - Link auf einen Fragebogen-Text berechnen
  • buttonCode() - HTML-Code für den Button „Weiter“ oder „Zurück“ erzeugen
  • buttonHide() - Buttons nicht automatisch am Ende der Seite anzeigen

option()

void option(string Option, mixed Einstellung)

Mit option() kann das Aussehen einer Seite im Fragebogen verändert werden. Folgende Optionen stehen zur Verfügung:

  • "progress"
    Darstellung des Fortschrittsbalken
    • "no" - Fortschrittsbalken ausblenden
    • "yes" - Fortschrittsbalken anzeigen (wenn es für den Fragebogen deaktiviert wurde)
    • 0 bis 100 - einen Fortschritt von genau so vielen Prozent anzeigen
  • "nextbutton"
    Text, der auf dem Weiter-Knopf angezeigt wird oder …
    • false - Weiter-Knopf ausblenden
  • "backbutton"
    Text, der für den Zurück-Knopf angezeigt wird oder …
    • false - Zurück-Knopf ausblenden (falls der Zurück-Knopf in den Fragebogen-Einstellungen aktiviert wurde)
    • true - Zurück-Knopf anzeigen (falls der Zurück-Knopf in den Fragebogen-Einstellungen nicht aktiviert wurde)
  • "resume"
    Hinweis unterdrücken, dass das Interview nach einer Unterbrechung fortgesetzt wird
    • true - Hinweis unterdrücken, weil erwartet wird, dass das Interview hier fortgesetzt wird
    • false - Hinweis anzeigen (Standardeinstellung)

Wichtig: Der Befehl option() eignet sich nur, um die Beschriftung der Knöpfe auf einzelnen Seite zu verändern. Wenn Sie die Beschriftung generell verändern möchten, dann legen Sie diese unter Beschriftung und Texte fest (Anleitung für Standard-Aufgaben).

Wichtig: Wenn Sie generell keinen Forschrittsbalken anzeigen möchten, dann entfernen Sie diese aus dem Fragebogen-Layout. Dafür müssen Sie einfach nur den Platzhalter %progress% löschen.

Hinweis: Die Option "resume" ist sinnvoll, wenn man die Befragung an einer Stelle absichtlich unterbrechen will - z.B. zur Durchführung mehrerer Befragungswellen im selben Fragebogen. Die Option muss gesetzt werden, bevor der Teilnehmer das Interview unterbricht, also z.B. gleich zu Beginn der Seite. Eine gezielte Unterbrechung kann man durch Ausblenden des Weiter-Knopfes mittels option("nextbutton", false) erzielen.

option('progress', 'no');  // Kein Fortschrittsbalken anzeigen
option('progress', 30);    // Fortschritt von 30% anzeigen
option('nextbutton', 'Abschicken');  // Ändert den Text des Weiter-Knopfes
option('backbutton', 'Letzte Seite');  // Ändert den Text des Zurück-Knopfes
option('backbutton', false);  // Blendet den Zurück-Knopf auf der Seite aus
option('resume', true);  // Kein Hinweis, falls Interview hier fortgesetzt |

preset()

void preset(string VariablenKennung, int|string Wert)

Gibt für eine Frage eine Antwort vor. Bei Texteingaben kann dies ein Text sein, der angezeigt wird, bei einer Auswahl, Mehrfachauswahl, Skala etc. können durch Angabe des entsprechenden Zahlencodes einzelne Optionen vorab ausgewählt werden.

  • VariablenKennung
    Die korrekte Variablen-Kennung finden Sie in der Variablen-Übersicht.
  • Wert
    Auch die Zahlencodes für Auswahloptionen oder Skalen werden in der Variablen-Übersicht aufgelistet (s. auch Kodierung und Rückgabewerte). Texte müssen natürlich in Anführungszeichen geschrieben werden.

Sie können auch für offene Eingabefelder in einer (Mehrfach-)Auswahl Texte voreinstellen. Verwenden Sie dafür die genaue Variablen-Kennung, wie in der Variablen-Übersicht nachzulesen. Das kann z.B. in einer Mehrfachauswahl auch eine Kennung wie TR10_02a sein.

Hinweis: preset() muss vor der Frage aufgerufen werden, wenn eine Voreinstellung angezeigt werden soll.

Hinweis: preset() muss auf der selben Seite aufgerufen werden wie die Frage.

Hinweis: Bei einer einfachen Auswahl muss als VariablenKennung die Frage-Kennung angegeben werden, als Wert die Kennung des Items (nur die Nummer des Items), das ausgewählt werden soll.

// AB01 seit eine Mehrfachauswahl mit 5 Optionen
preset('AB01_01',2); // Erste Auswahloption ist ausgewählt
preset('AB01_04',2); // Vierte Auswahloption ist ausgewählt
question('AB01');    // Ausgabe der Mehrfachauswahl
                     // (zwei der 5 Optionen sind bereits ausgewählten)

prepare_input()

void prepare_input(string Kennung, [string Itemliste])

Mit prepare_input() können Sie ein Texteingabefeld, eine Dropdown-Auswahl oder ein Auswahlfeld in einer anderen Frage platzieren – z.B. in einem Item als „Sonstiges“-Eingabefeld.

Falls die Kennung eine Frage bezeichnet, können Sie mit der Itemliste angeben, welche Items der Frage angezeigt werden. Falls die Kennung ein Item bezeichnet (z.B. eine Texteingabe), wird die Itemliste ignoriert.

Für die Verwendung dieser Funktion lesen Sie bitte Eingabefelder frei platzieren.

html()

void html(string Text)

Gibt im Fragebogen direkt HTML-Code aus. Damit können Texte ausgegeben oder Bilder eingebunden werden. Sinnvoller ist der Einsatz aber für Layout-Konstruktionen (Elemente nebeneinander platzieren).

Tipp: Verwenden Sie zum Einbinden von Texten, Bildern und längeren HTML-Codes besser Textbausteine (zu erstellen unter Textbausteine u. Beschriftung). Diese können sie mit der Funktion text() ebenso im PHP-Code nutzen, aber der Code bleibt übersichtlicher, es stehen erweiterte Funktionen (z.B. mehrsprachige Fragebögen oder Platzhalter) zur Verfügung und man muss sich keine Sorgen um Anführungszeichen machen.

html('<h1>Willkommen!</h1>');
html('
  <p>Zeilenumbrüche sind
  hier kein Problem.</p>
');

Hinweis: Um in einem Text Anführungszeichen zu verwenden, die bereits als Textbegrenzer fungieren, müssen die Anführungszeichen durch einen Backslash (\) entwertet werden. Dann werden sie nicht mehr als Textbegrenzer erkannt und korrekt dargestellt (siehe Beispiel 2, unten).

html('<p>Ich beinhalte "doppelte Anführungszeichen"</p>');
html("<p>Und &quot;ich&quot; auch</p>");
html('<p>So klappt\'s mit einfachen Anführungszeichen</p>');
html('<h1>Hallo Welt!</h1>');  // Einfache Anführungszeichen
html("<h1>Hallo Welt!</h1>");  // Doppelte Anführungszeichen
html('<h1>Hallo "Welt"</h1>');           // Richtig
html("<h1>Hallo &quot;Welt&quot;</h1>"); // Noch richtiger
html("<h1>Hallo "Welt"</h1>"); // **Falsch**, weil der String durch doppelte
                               // Anführungszeichen markiert wird und
                               // doppelte Anführungszeichen darin vorkommen.
// Verteilen des Strings aus mehrere Zeilen - oft sinnvoll
// Aber meistens ist hier text() noch viel sinnvoller
html('
  <h1>Hallo Welt!</h1>
  <p>Wie geht es dir, Welt?</p>
');

Wichtig: Einige Wörter (z.B. „new“) dürfen im PHP-Code nicht vorkommen, weil sie in PHP eine besondere Bedeutung besitzen. Wenn so ein Wort in Ihrem Text vorkommt und Sie unbedingt den Befehl html() statt eines Textbausteins verwenden wollen, setzen Sie den Text aus Fragementen zusammen:

// Falsch: Kann aus Sicherheitsgründen nicht gespeichert werden
html('<p>This is a new car</p>');
// text() kennt diese Beschränkung nicht
text('cartext');
// Und es funktioniert auch dieser Umweg
html('<p>This is a ne'.'w car</p>');

Vorsicht: Jeder andere Versuch, z.B. mit echo direkt Text auszugeben, schreibt nicht an die aktuelle Stelle im Fragebogen (z.B. zwischen zwei Fragen), sondern an den Anfang des Dokuments. Daher ist der Befehl echo im PHP-Code nicht erlaubt.

string textlink(string TextKennung, string Titel, [int Breite, int Höhe])

Falls ein Text (z.B. eine längere Beschreibung) nicht direkt im Fragebogen gezeigt werden soll, kann sie auch in einem neuen Fenster erscheinen. Der Text wird dabei im selben Layout dargestellt wie der Fragebogen.

Optional kann angegeben werden, wie groß das neue Fenster dargestellt werden soll. Es ist oft sinnvoll, das Fenster relativ klein zu halten, damit man den Fragebogen weiter im Hintergrund sieht.

Hinweis: Die Funktion berechnet den Link nur. Sie müssen noch für die Ausgabe mit text() oder html() sorgen.

// Speichert den Link zum Textfenster mit dem Fragebogen-Text 'explanation'
// mit der Beschriftung "hier" in der temporären Variable $link
$link = textlink('explanation', 'hier');
html('<p>Bitte klicken Sie '.$link.'</p>');
// Gibt den Text "Bitte klicken Sie hier" aus
// In PHP dient der Punkt (.) dazu, Texte zusammenzufügen
// Gleiches Ergebnis, nur weniger übersichtlich
html('<p>Bitte klicken Sie '.textlink('explanation', 'hier').'</p>');
// Der Link kann auch per Platzhalter eingefügt werden
set(textlink('explanation', 'hier'), 'link');
text('linktext');
// Der Fragebogen-Text "linktext" sollte nun den Platzhalter %link%
// enthalten, also z.B. "<p>Bitte klicken Sie %link%</p>".
// Dies ist freilich v.a. bei längeren Texten nützlich.
// So erscheint das neue Fenster in der Größe 640 × 400 Pixel
$link = textlink('explanation', 'Erklärung', 640, 400);
html('<p>Bitte lesen Sie ggf. die '.$link.'</p>');

Hinweis: Der Text ist unter dem erzeugten Link nur für Benutzer des Fragebogens (Interviewpartner) erreichbar.

Hinweis: Wird keine Größe angegeben, so ist die Größe 600 × 500 Pixel voreingestellt.

Tipp: Wenn Sie für die Anzeige eines kurzen Textes kein eigenes Fragebogen-Fenster öffenen wollen – wer weiß, ob der Teilnehmer danach wieder zum Fragebogen zurück findet – dann lesen Sie folgendes Kapitel: Informationen per Mausklick einblenden

buttonCode()

string buttonCode(string ButtonTyp)

Normalerweise werden am Ende jeder Fragebogen-Seite ein Weiter- und je nach Einstellung auch ein Zurück-Knopf angezeigt. Diese Funktion hilft weiter, wenn man die Buttons an anderer Stelle zeigen möchte.

Mit buttonCode() erzeugt man den HTML-Code, um einen Weiter- oder Zurück-Knopf anzuzeigen. Den HTML-Code muss man anschließend noch mit html() in die Fragebogen-Seite einbinden. Mithilfe dieser Funktion lässt sich die Position des Buttons frei gestalten.

Wichtig: Nach Aufruf der Funktion wird das automatische Einfügen von Buttons am Ende der aktuellen Seite unterbunden.

Für das Argument ButtonTyp stehen 2 Einstellungen zur Verfügung:

  • 'next' - Weiter-Knopf
  • 'back' - Zurück-Knopf

Direktes Einfügen in HTML-Code

$buttonNext = buttonCode('next');  // Speichert den HTML-Code für die
$buttonBack = buttonCode('back');  // Buttons in 2 Variablen
// Einfügen des HTML-Codes in den Fragebogen, z.B. in einer Tabelle
html('
  <table cellspacing="10" cellpadding="0">
  <colgroup>
    <col width="60%">
    <col width="40%">
  </colgroup>
  <tr>
    <td>Drücken Sie diesen Knopf,
        um zur nächsten Seite zu gelangen &rarr;</td>
    <td>'.$buttonNext.'</td>
  </tr>
  <tr>
    <td>Um zur vorherigen Seite zu gelanden,
        drücken Sie diesen Knopf &rarr;</td>
    <td>'.$buttonBack.'</td>
  </tr>
  </table>
');

Verwendung mit Platzhaltern

// PHP-Code auf Seite 1
$buttonNext = buttonCode('next');  // Speichert den HTML-Code für die
$buttonBack = buttonCode('back');  // Buttons in 2 Variablen
set($buttonNext, 'buttonNext');  // Für Platzhalter abspeichern
set($buttonBack, 'buttonBack');
text('buttons');  // Fragebogen-Text anzeigen
// PHP-Code auf Seite 2
// Auf Seite 2 sind die Platzhalter weiterhin verfügbar
text('buttons');

Passender Fragebogen-Text mit der Kennung buttons

<table cellspacing="10" cellpadding="0">
  <colgroup>
    <col width="60%">
    <col width="40%">
  </colgroup>
  <tr>
    <td>Drücken Sie diesen Knopf,
        um zur nächsten Seite zu gelangen &rarr;</td>
    <td>%buttonNext%</td>
  </tr>
  <tr>
    <td>Um zur vorherigen Seite zu gelanden,
        drücken Sie diesen Knopf &rarr;</td>
    <td>%buttonBack%</td>
  </tr>
</table>

buttonHide()

void buttonHide()

Mit der Funktion buttonHide() kann man unterbinden, dass am Ende der Fragebogen-Seite automatisch Knöpfe eingefügt werden. Das kann z.B. nützlich sein, wenn man den Nutzer per JavaScript zur nächsten Seite weiterleiten will (Timer: Automatisch weiter zur nächsten Seite) oder wenn die Befragung bis zum nächsten Erhebungszeitpunkt unterbrochen werden soll.

Falls man die Funktion buttonCode() verwendet, werden die Knöpfe am Ende des Fragebogens automatisch ausgeblendet.

de/create/functions-output.txt · Zuletzt geändert: 18.01.2013 09:59 von christoph.hannebauer
 
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