====== reference() ======

''string **reference**()''

Falls im [[:de:survey:url|Link zum Fragebogen]] eine Referenz übergeben wurde, gibt die Funktion ''reference()'' diese zurück. In der Referenz können z.B. Informationen zum Teilnehmer kodiert werden, welche der Fragebogen gleich für die Filterführung verwendet (s. Beispiel 2).

**Tipp:** In Fragen, Textbausteinen und der Funktion ''[[:de:create:functions:redirect|redirect()]]'' kann die Referenz auch mithilfe des [[:de:create:placeholders#vordefinierte_platzhalter|vordefinierten Platzhalters]] ''%reference%'' eingebunden werden.


===== Beispiel 1 =====

Im folgenden Beispiel wird die Referenz einfach nur angezeigt.

<code php>
html('<p>Ihre Referenz: <strong>'.reference().'</strong></p>');
</code>

Der Platzhalter ''%reference%'' hat hier denselben Effekt.

<code php>
html('<p>Ihre Referenz: <strong>%reference%</strong></p>');
</code>


===== Beispiel 2 =====

Die Verwendung der Referenz kann nützlich sein, wenn darin weitere Informationen kodiert sind. Im folgenden Beispiel hätten Sozialwissenschaftler z.B. eine Referenz "Axxx" (z.B. A100, A201, A991) und Naturwissenschaftler eine Referenz "Bxxx" (z.B. B100, A201, B990) im Link bekommen.

In Abhängigkeit von der Referenz soll nun Frage "AB01" oder "AB02" angezeigt werden. Dafür muss zunächst mittels ''{0}'' das erste Zeichen der Referenz extrahiert werden. Die PHP-eigene Funktion ''[[http://php.net/manual/de/function.strtoupper.php|strtoupper()]]'' stellt sicher, dass eventuelle Kleinbuchstaben in Großbuchstaben umgewandelt werden.

<code php>
$ref = strtoupper(reference()); // Referenz ermitteln und in Großbuchstaben umwandeln
if (strlen($ref) < 1) {
  // Gar keine Referenz übermittelt (weniger als 1 Zeichen)
  goToPage('next');
} elseif ($ref{0} == 'A') {
  question('AB01');  // Frage für Sozialwissenschaftler
} elseif ($ref{0} == 'B') {
  question('AB02');  // Frage für Naturwissenschaftler
} else {
  // Keine gültige Referenz übermittelt
  goToPage('next');
}
</code>

