
- MODX 3
- PHP 8.2
- Vue 3


Result: the visitor sends a request. The mail leaves in the same request. PageBuilder does not store submissions. Requires PageBuilder Pro and FetchIt.
[[!PageBuilder]].pagebuilder_fe_form_unavailable.forms.A form that lives on one page:
contact_form section.text, email, phone, textarea, select, radio, checkbox, date. For select and radio write one value per line. The line becomes both the label and the value. Field name: [a-z][a-z0-9_]*, case-insensitive.1, yes, true, or on.emailsender. An empty value means the message is not sent and the visitor sees a send error.One schema on many pages:
text, email, tel, textarea, select, radio, checkbox, date, plus hidden and consent. For select and radio fill Options.emailsender.https://. The header is X-PageBuilder-Signature. A webhook does not replace the mail.form_builder, pick the key, and set intro if you need it.PageBuilderFormBuilder snippet handles the submit.The server checks CSRF and the nospam honeypot.
form_builder schema prints pagebuilder_fe_form_empty.Too many requests. contact_form has no such limit.Two forms on one page.
contact_form, key callback. Repeater rows:
| name | label | type | options |
|---|---|---|---|
name | Name | text | |
email | email | ||
topic | Topic | select | Delivery and Payment, one value per line |
A second contact_form section uses key callback_footer. Same fields, different key.
form_builder on other pages reads the schema from the Forms tab, not from a section repeater. Fill intro when you need a paragraph above the fields.
contact_form: the mail goes to emailsender. An empty value does not send, and the visitor sees an error.
form_builder: the mail goes to the schema Email. An empty Email sends to emailsender. An invalid address and a mail failure are written to the log and do not change success.
The nospam honeypot returns a silent success and sends no mail.
Delete the section. Delete the CMP schema separately.