Felder sind die Bausteine deines Formulars. Sie können Daten lesen (aus einem geladenen onOffice-Datensatz), anzeigen (Eingabe vom Formularbesucher), und beim Absenden schreiben (in einen neuen oder bestehenden onOffice-Datensatz).
Diese Seite ist ein Überblick über alle verfügbaren Feldtypen und ihre Optionen. Im Schnellstart-Video „Formular & Felder bearbeiten" siehst du die wichtigsten Funktionen in 5 Minuten.
Wenn du ein Formular gespeichert hast, findest du unter den Formulareinstellungen die Liste der Felder. Mit einem Klick auf „Feld hinzufügen" legst du ein neues Feld an.
Felder kannst du per Drag & Drop in der gewünschten Reihenfolge anordnen. Mit einem Klick auf das Stift-Icon öffnest du die Feldeinstellungen.
💡 Felder können mehrmals hinzugefügt werden. Wenn du zwei identische Felder (selber Feldtyp + Feldname) im Formular hast, wird beim Absenden nur das letzte verwendet.
Beim Anlegen eines Felds wählst du zuerst den Feldtyp. Die Auswahl entscheidet, was das Feld macht und welche weiteren Optionen verfügbar sind.
| Feldtyp | Modul-Name | Beispielfelder |
|---|---|---|
| Immobilie | estate |
Objektart, Kaufpreis, Wohnfläche, Ort, Strasse |
| Adresse | address |
Vorname, Name, E-Mail, Telefon, Straße |
| Aktivität / Maklerbuch | agentsLog |
Aktionsart, Aktionstyp, Bemerkung |
| Aufgabe | task |
Betreff, Beschreibung, Status, Verantwortlicher |
| Termin | calendar |
Betreff, Start/Ende, Status, Ort |
| Suchkriterium | searchcriteria |
Wohnfläche von/bis, Objektart, Region |
| Projekt | project |
Projektname, Status |
Die jeweils verfügbaren Einzelfelder in jedem Modul kommen direkt aus deiner onOffice-Administration. Wenn ein Feld fehlt, prüfe in onOffice unter Extras → Einstellungen → Administration, ob das Feld dort aktiviert ist.
| Feldtyp | Zweck |
|---|---|
| Überschrift | Großer Text als Abschnitts-Überschrift |
| Beschreibung | Längerer Text mit Erklärungen, Makro-aufgelöst |
| Umbruch | Trennt Multi-Step-Formulare in Schritte |
| Trennlinie | Visuelle Linie zur Strukturierung |
| Link-Button | Stylischer Button, der auf eine externe URL verlinkt |
| Bild | Eingebettetes Bild (URL) |
| Video | Eingebettetes YouTube- oder Vimeo-Video |
| Akkordeon | Aufklappbarer Bereich mit beliebigen Inhalten darin |
| ChatGPT | KI-Textgenerator-Feld |
| Datei hochladen | Mehrdatei-Upload-Feld (siehe unten) |
| Datei herunterladen | Download-Link für Dateien aus dem Datensatz (siehe unten) |
| Datensatz-Verbindung | Steuert die Beziehung zwischen Adresse & Immobilie |
Auf dem Reiter „Beschriftung" legst du fest, wie das Feld im Formular beschriftet wird:
_Vorname, was suchst du?".;-getrennt), die der Browser als Autovervollständigung beim Tippen zeigt.
Welche Vorausfüll-Werte hat ein Feld? Es gibt vier Quellen, in dieser Priorität von schwach nach stark:
Default-Wert← überschrieben von ←Wert aus onOffice-Datensatz← überschrieben von ←URL-Parameter← überschrieben von ←Erzwungener Wert
?modul[feldname]=wert vorausgefüllt werden kann.; trennen.;-getrennt). Das Formular ist nur absendbar, wenn der Feldwert einem davon entspricht. Bei Single-/Multiselect werden außerdem nur diese Optionen angezeigt.🔑 Wichtig bei Single-/Multiselect: Du musst die internen Schlüsselbezeichnungen aus der onOffice-Administration nutzen — z.B.
ind_Schl_2759, nicht den angezeigten Klartext.
Mehr Details: Vorausfüllen & Datensätze laden.
Für numerische Felder (Kaufpreis, Wohnfläche, Anzahl Zimmer etc.) gibt es zusätzliche Optionen:
1000 für glatte Tausender-Schritte beim Kaufpreis, 0,0001 für 4-Nachkomma-Dezimalstellen.m², €, kg etc.💡 Auf dem Smartphone wird automatisch die Nummerntastatur statt der Buchstabentastatur eingeblendet. Tausendertrennzeichen (Punkt) werden automatisch eingefügt.
Für Auswahllisten (Objektart, Kontaktart, Vermarktungsart etc.) gibt es einige Spezial-Optionen:
Statt der Original-onOffice-Bezeichnungen kannst du eigene Labels für die Optionen vergeben — z.B. „Ja"/„Nein" statt ja/nein, oder englische Übersetzungen. Du gibst die Mappings in den Feldeinstellungen pro Schlüssel an.
💡 Use-Case Mehrsprachigkeit: Wenn du eine englische/spanische Formular-Kopie pflegst, überschreibst du hier die Schlüsselbeschriftungen pro Option (
apartment→Apartamento,villa→Townhouse) — ohne die onOffice-Administration anzufassen. Mehr unter Mehrsprachige Formulare.
Nicht jede Option soll im Formular sichtbar sein? In den Feldeinstellungen → weitere Feldeinstellungen → „Zugelassene Werte" kannst du eine Whitelist definieren — alle anderen Optionen werden ausgeblendet.
Format: Schlüsselwerte mit Semikolon getrennt — z.B. ind_3673;ind_3675.
Schlüsselwerte finden: Im Formular Rechtsklick → Untersuchen → <select> aufklappen → die <option>-Tags zeigen data-selectable-data-value (Schlüssel) + Klartext (Beschriftung).
💡 Spezialfall Benutzerfelder: Bei Single-Select-Benutzerfeldern (z.B. „Betreuer der Immobilie") sind die Schlüssel interne User-IDs wie
23,45. Die findest du nur über den DevTools-Inspect-Trick — onOffice zeigt sie in der Administration nicht an.
Bei Feldern mit vielen Optionen (z.B. Benutzerfelder) kannst du erlauben, dass beim Klick ins Feld ein Suchfeld erscheint und der Besucher nach Werten tippen kann.
Standardmäßig überschreibt ein Multi-Select-Submit den bestehenden Wert in onOffice komplett — alle vorhandenen Tags werden ersetzt. Das ist bei bestehenden Adressen (Adress-Dubletten-Check, siehe Mehrere Datensätze verbinden) oft unerwünscht: ein Kunde, der schon „Kontaktart=Käufer" hat und ein Newsletter-Formular ausfüllt, soll nicht plötzlich nur noch „Kontaktart=Newsletter" haben.
Lösung: In den Formulareinstellungen → „Werte schreiben"-Sektion die Option „Multi-Select-Werte ergänzen / entfernen" aktivieren.
💡 Unterschied zu Hidden-Field-Default: Hidden-Field mit Default-Wert wirkt nur bei NEU angelegten Datensätzen. Die Ergänzen/Entfernen-Einstellung wirkt auch bei bestehenden Datensätzen über den Dubletten-Check — also genau das, was du für Newsletter-/Tag-Workflows brauchst.
Multiselect-Felder zeigen jetzt die Hierarchie der Optionen (Eltern/Kind). Wählst du ein Eltern-Element an, werden Kindelemente automatisch mit angehakt — und umgekehrt.
Felder können sich gegenseitig automatisch ergänzen — z.B. ein Vorname-Feld, das auf Basis von Anrede+Nachname Vorschläge generiert, oder ein Suchprofil-Beschreibungsfeld, das aus mehreren Feldern automatisch zusammengestellt wird.
Setup: Feldeinstellungen → Beschriftung → Multi-Select „Auto-Vervollständigung" → andere Feldnamen aus dem Formular auswählen. Beim Ändern der Quell-Felder ergänzt sich der Tag mit deren Werten automatisch.
📖 Mehr unter Berechnete Felder.
Wenn du dasselbe Feld zweimal im Formular hinzufügst (z.B. Anrede oben und unten), gewinnt immer das spätere Feld beim Submit — auch wenn es leer ist. Das überschreibt das obere Feld mit nichts → Datenverlust.
Stattdessen:
Anrede2, Vorname2, Name2, Strasse2 usw. (oft in der onOffice-Administration unter „Stammdaten 2" zu aktivieren)anrede_2, vorname_2, name_2)💡 Stammdaten-2-Felder sind in vielen onOffice-Versionen standardmäßig deaktiviert — vor der Verwendung im propform-Formular in onOffice unter Extras → Einstellungen → Administration → Adressen aktivieren.
Wähle als Feldtyp „Datei hochladen" in einem onOffice-Modul (Adresse oder Immobilie). Der Besucher kann eine oder mehrere Dateien hochladen, die direkt zum onOffice-Datensatz gehen.
Foto, Aushang, Energieausweis, Grundriss etc. — wird automatisch auf den passenden internen/externen Reiter und die onOffice-Standard-Dateiart gemappt. Fallback-Default: „Dokument intern"._Name_Vorname oder Geldwaeschedoku_Name. Bei Mehrfach-Upload werden automatisch _1, _2, _3 angehängt.💡 Adresse vs. Immobilie: Datei-Upload-Felder im Modul Adresse haben weniger Optionen (Dateiname + Freitext) als im Modul Immobilie (alles oben). Das ist eine onOffice-API-Vorgabe.
Wenn ein Datei-Upload-Feld ein Dokumentenmerkmal zugeordnet hat, wird Multi-Upload automatisch auf eine Datei beschränkt — onOffice-API-Regel: 1 Merkmal = 1 Datei.
Workarounds:
Apple-Browser-Quirk: Auf iPhone werden deaktivierte Single-Select-Optionen nicht versteckt, sondern ausgegraut angezeigt (HTML-Standard). Wenn du das vermeiden willst: nutze „Zugelassene Werte" (Whitelist) statt einzelne Optionen zu deaktivieren — die nicht-zugelassenen Optionen werden dann komplett aus dem Dropdown entfernt.
Sehr praktisch für viele Fotos oder mehrere PDF-Seiten:
In den Feldeinstellungen kannst du ein Datei-Feld auch als Download-Feld (für bereits vorhandene Dateien aus onOffice) oder als Hybrid (Upload + Download) konfigurieren.
In den Datei-Feld-Einstellungen den Haken „Unterschriften-Feld" setzen. Statt des Standard-Datei-Pickers wird im Formular ein digitales Pad angezeigt — der Besucher zeichnet die Unterschrift mit Maus oder Finger.
_dateipfadAdressfeld bzw. _dateipfadObjektfeld kannst du die Unterschrift in onOffice-PDF-Vorlagen einfügen — perfekt für Mieterselbstauskunft, Notarbeauftragung, Vollmachten etc.💡 Verwandte Option: Haken „Mailanhang für Dateien aus diesem Feld unterbinden" verhindert, dass die Unterschrifts-PNG zusätzlich an die Notification-Mail gehängt wird — sinnvoll, wenn die Unterschrift schon im PDF-Exposé erscheint und nicht doppelt mitgeschickt werden soll.
📺 Siehe Video: 9. Unterschrift-Feld zum Formular hinzufügen
📎 HEIC-Bilder vom iPhone werden automatisch in JPEG konvertiert. 📎 Datei-Größenlimit: 128 MB pro Einzeldatei (serverseitiges nginx-Limit). Bei größeren Einzeldateien bekommt der User einen Server-Fehler vor dem eigentlichen Upload.
Mit Download-Feldern stellst du bereits in onOffice gespeicherte Dateien für Formularbesucher zum Download bereit. Praktisch für digitale Daten-/Download-Räume.
📺 Siehe Video: 12. Dateien herunterladen
Du wählst aus diversen Selektoren:
Expose_Name_Vorname.pdfFelder im Suchkriterien-Modul müssen in der onOffice-Administration explizit als Suchkriterien-Feld definiert sein, sonst werden sie propform nicht angeboten.
Felder wie „Wohnfläche", „Kaufpreis", „Zimmeranzahl" haben in Suchkriterien einen Von- und einen Bis-Wert. Du kannst:
?searchcriteria[wohnflaeche__von]=50&searchcriteria[wohnflaeche__bis]=80Das Multiselect-Feld „Regionaler Zusatz" hat oft eine sehr umfangreiche Baumstruktur (PLZ, Stadtteile, Regionen). Im Modus „Alternativ" werden die Kindelemente nicht direkt im Formular angezeigt, sondern automatisch mit-aktiviert, wenn das Elternelement angewählt wird. So bleibt das Formular schnell und übersichtlich.
Großer Text als Abschnitts-Überschrift. Makros aktiviert — z.B. „Anfrage zu _objektart in _ort".
Längerer Erklärungstext, üblicherweise zwischen Feldern. Makros aktiviert. Innerhalb von Beschreibungen kannst du propform-Makros wie _pfButton(...) oder _pfLink(...) nutzen, um Buttons und Links zu erzeugen — siehe propform-Makros.
💡 In Beschreibungs-Feldern kannst du auch iFrames einbinden — z.B. einen Timum-Termin-Buchungs-iFrame. Praktisch, um externe Funktionen direkt ins Formular zu integrieren.
Beschreibungs-Felder erlauben umfangreiches HTML — gefiltert über HTMLPurifier (XSS-sicher, aber großzügig konfiguriert):
<strong>, <b>, <em>, <i>, <u>, <small>, <mark>, <sub>, <sup>, <s>, <ins>, <del>, <br>, <hr>, <p>, <h1>–<h6><ul>, <ol> mit <li><table>, <thead>, <tbody>, <tr>, <th>, <td> (mit border, cellpadding, cellspacing, colspan, rowspan)<a href="..." target="_blank|_self|_top" class="..." type="..."><img src="..." width height alt style><div class style>, <span class style>, <blockquote>, <cite><section>, <nav>, <article>, <aside>, <header>, <footer>, <address>, <figure>, <figcaption><video controls preload poster> mit <source src type><iframe src width height title allow allowfullscreen frameborder>style-Attribute: großzügig zugelassen (inkl. !important, Vendor-Prefixes, proprietäre Properties) — du kannst Farben, Größen, Margins, Borders, Backgrounds, Flexbox/Grid, Transformationen etc. setzen🔒 Sicherheit:
<script>-Tags und Event-Handler (onclick=,onload=etc.) sind blockiert (XSS-Schutz). iFrames werden nur über HTTPS zugelassen. Du kannst also keinen beliebigen JavaScript-Code einschleusen.
Makro-Auflösung in Beschreibungs-Feldern: voll aktiv — du kannst _calculate(IF(...)) für conditional Inhalte verwenden, Felder aus dem Datensatz dynamisch einbetten, oder _pfGetSearchCriteriaInformation für Suchprofil-Tabellen einsetzen.
Trennt das Formular in Multi-Step-Schritte. Pro Umbruch-Feld:
Einfache visuelle Linie. Kein Inhalt, nur zur Struktur.
Stylischer Button, der auf eine externe URL verlinkt. Du kannst die URL um aktuell geladene IDs/UUIDs ergänzen — z.B. „Springe zum Folgeformular mit den frisch angelegten Datensätzen". Optionen:
Eingebettetes Bild über externe URL.
Eingebettetes YouTube- oder Vimeo-Video. Bei Vimeo lässt sich auch der Privacy-Hash-Parameter angeben.
Aufklappbarer Bereich. Inhalt sind beliebige andere Felder. Optionen:
Spezialfeld für KI-Textgenerierung — der Besucher gibt Daten ein, ChatGPT erzeugt den Text und schreibt ihn in ein onOffice-Feld. Konfiguriert wird das in den Formulareinstellungen unter „ChatGPT-Textgenerierung".
Wenn dein Formular gleichzeitig eine Adresse und eine Immobilie anlegt oder bearbeitet, brauchst du eine Verbindung zwischen den beiden — z.B. „Eigentümer", „Käufer", „Mieter", „Interessent".
In den Formulareinstellungen kannst du eine statische Verbindung wählen. Wenn du eine dynamische Verbindung brauchst (z.B. abhängig von einem Auswahl-Feld), füge ein Datensatz-Verbindung-Feld zum Formular hinzu.
Dabei ist es egal, ob du den Feldtyp „Immobilie" oder „Adresse" wählst.
Mögliche Werte:
| Wert | Bedeutung |
|---|---|
estate:address:owner |
Immobilie ↔ Eigentümer |
estate:address:buyer |
Immobilie ↔ Käufer |
estate:address:renter |
Immobilie ↔ Mieter |
estate:address:tenant |
Immobilie ↔ Bewohner/Nutzer |
estate:address:contactPerson |
Immobilie ↔ Makler als Ansprechpartner |
estate:address:contactPersonAll |
Immobilie ↔ Ansprechpartner (alle) |
estate:address:interested |
Immobilie ↔ Interessent |
calendar:address |
Termin ↔ Adresse |
calendar:estate |
Termin ↔ Immobilie |
agentsLog:address |
Aktivität ↔ Adresse |
agentsLog:estate |
Aktivität ↔ Immobilie |
address:estate:tipp |
Tippgeber ↔ Immobilie |
address:searchcriteria |
Adresse ↔ Suchkriterium |
address:estate:offer |
Adresse ↔ Immobilienangebot |
address:estate:contacted |
Kontaktierte Adresse ↔ Immobilie |
project:address |
Projekt ↔ Adresse |
project:estate |
Projekt ↔ Immobilie |
project:agentslog |
Projekt ↔ Aktivität |
project:calendar |
Projekt ↔ Termin |
project:task:customer |
Projekt ↔ Aufgabe (Kundendatenbank) |
task:address |
Aufgabe ↔ Adresse |
task:estate |
Aufgabe ↔ Immobilie |
💡 Häufig willst du das Verbindungs-Feld mit „Erzwungener Wert" + „Feld ausblenden" kombinieren, sodass der Besucher es nicht zu sehen bekommt, aber die Verbindung trotzdem hergestellt wird.