This document is for an older version of
Express Forms
.
View latest version →
Returning Submit to Same Page
Aside from the obvious of using AJAX, you can achieve this by adding a query in the success URL instead of an additional segment, etc.
{% if craft.app.request.getQueryParam('success') == 1 %}
<div class="success">Your message has been sent!</div>
{% endif %}
{% set form = craft.expressforms.form("contact") %}
{{ form.openTag({
return: '/contact?success=1',
}) }}
{# Form layout code goes here #}
{{ form.closeTag }}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
Or a different option, simply redirecting to /contact?success
:
{% set successParam = craft.app.request.getParam('success') %}
{% if successParam is not null %}
<p>Your message has been sent!</p>
{% endif %}
{% set form = craft.expressforms.form("contact") %}
{{ form.openTag({
return: '/contact?success',
}) }}
{# Form layout code goes here #}
{{ form.closeTag }}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
Dynamically build return URL
If you're looking for a dynamic way of setting a return URL with combining several segments:
{% set returnUrlPath = siteUrl ~ "get-quote/" ~ craft.app.request.getSegment(2) ~ "?success=1" %}
1
And for the form.openTag()
:
{{ form.openTag({
return: returnUrlPath,
}) }}
1
2
3
2
3