YForm Choice-Feld: Label statt Wert in E-Mail
Quell-ID: GitHub Discussion #6
Use Case
Bei einem YForm-Formular mit einem Choice-Feld (Dropdown/Radio) soll in der versendeten E-Mail nicht der technische Wert, sondern das für den Benutzer sichtbare Label angezeigt werden.
Verwendete AddOns
- YForm
Problemstellung
Ein Choice-Feld ist wie folgt definiert:
choice|sex|Geschlecht|Weiblich=1,Männlich=2,Divers=3|1|0|
Die Standardausgabe REX_YFORM_DATA[field="sex"] liefert nur den Wert “1” statt “Weiblich”.
Lösung
YForm bietet spezielle Suffixe für Choice-Felder in E-Mail-Templates:
Verfügbare Platzhalter
| Platzhalter | Ausgabe |
|---|---|
REX_YFORM_DATA[field="choice"] |
Technischer Wert (z.B. “1”) |
REX_YFORM_DATA[field="choice_LABELS"] |
Labels als kommaseparierter Text |
REX_YFORM_DATA[field="choice_LIST"] |
Liste mit Checkboxen-Darstellung |
Beispiel für _LABELS
Büro Frankfurt
Beispiel für _LIST
[ ] Büro Gießen
[⨉] Büro Frankfurt
[ ] Büro München
Anwendung im E-Mail-Template
Guten Tag,
Sie haben folgende Angaben gemacht:
Geschlecht: REX_YFORM_DATA[field="sex_LABELS"]
Standortwahl:
REX_YFORM_DATA[field="standort_LIST"]
Besserer Ansatz für komplexe Formulare
Für umfangreiche Formulare empfiehlt sich ein strukturiertes E-Mail-Template:
<?php
// E-Mail-Template mit PHP
$geschlecht = $this->getValue('sex_LABELS');
$standorte = $this->getValue('standort_LABELS');
?>
<table>
<tr>
<td><strong>Geschlecht:</strong></td>
<td><?= $geschlecht ?></td>
</tr>
<tr>
<td><strong>Standorte:</strong></td>
<td><?= $standorte ?></td>
</tr>
</table>
Hinweis
Diese Suffixe funktionieren bei allen Choice-Feld-Typen (select, radio, checkbox) und sind in der YForm-Hilfe dokumentiert.