This document is for an older version of
Freeform
.
View latest version →
Freeform for ExpressionEngine
2.x Retired
Freeform_Next:Submissions tag
The Freeform_Next:Submissions template tag fetches an individual submission or list of submissions based on some or no criteria.
Parameters
date_range
#- Ability to limit results that were submitted within a specified timeframe.
- Options are:
today
this week
this month
last month
this year
date_range_start
#- Ability to limit results that were submitted within a specified timeframe.
- Used in conjunction with date_range_end parameter.
- Specify a date in which you want entry submissions to start at (be no older than), using standard EE date syntax, or PHP datetime and relative formats. E.g.:
date_range_start="2017-01-01 12:00 PM"
date_range_start="2 weeks ago"
date_range_end
#- Ability to limit results that were submitted within a specified timeframe.
- Used in conjunction with date_range_start parameter.
- Specify a date in which you want entry submissions to stop at (be no newer than), using standard EE date syntax, or PHP datetime and relative formats. E.g.:
date_range_end="2017-12-31 12:00 PM"
date_range_end="1 month"
form
#- Handle of the form, e.g.
form="composer_form"
, or an array of handles:form="composer_form|client_survey"
. - Use
form="not composer_form"
to select all submissions EXCEPT the ones for Composer Form form.
- Handle of the form, e.g.
form_id
#- The ID of the form, e.g.
form_id="2"
, or array of ID's, e.g.form_id="1|2|3"
. - If you want to select all form submissions EXCEPT the form with an ID of 1, use
form_id="not 1"
.
- The ID of the form, e.g.
limit
#- Supply the maximum number of submissions you want to be returned, e.g.
limit="25"
- Supply the maximum number of submissions you want to be returned, e.g.
offset
#- Skip the first specified amount of entries in the results, e.g.
offset="2"
- Skip the first specified amount of entries in the results, e.g.
orderby
#- Use
title
,date
,status
or any field handle to order by that value, e.g.orderby="first_name"
.
- Use
paginate
#- Control where the pagination will display. Options are
top
,bottom
, orboth
. E.g.paginate="both"
. - Used in conjunction with the
submission:paginate
variable pair.
- Control where the pagination will display. Options are
sort
#- The sort order of the results. Use
asc
ordesc
, e.g.sort="asc"
.
- The sort order of the results. Use
status
#- Specify a status to fetch submissions with a certain status, e.g.
status="open"
, or an array of statuses:status="open|pending"
.
- Specify a status to fetch submissions with a certain status, e.g.
submission_id
#- Used to limit results to a specific submission or set of submissions, e.g.
submission_id="22"
, or array of ID's, e.g.submission_id="22|45|56"
- Used to limit results to a specific submission or set of submissions, e.g.
token
#- Specify the token of the submission you'd like to view. Can be used instead of
submission_id
to more securely display submission data on the front end. - You can feed the submission token into the URL with the
{submission:token}
variable from a template that includes the Freeform_Next:Submissions template tag, or in email notification templates, etc.
- Specify the token of the submission you'd like to view. Can be used instead of
search:FIELD_NAME
#- Used to filter your submission results by a hardcoded search term, e.g.,
search:city="winnipeg"
will show only submissions that contain the valuewinnipeg
in thecity
field. It works mostly like the search:field="value" parameter in the Channel:Entries tag (though some more advanced options may not work).
- Used to filter your submission results by a hardcoded search term, e.g.,
Variables
{form:name}
#- The name of the form the submission belongs to.
- For form ID, use
{form:id}
- For form handle, use
{form:handle}
{submission:id}
#- The submission's unique ID.
{submission:token}
#- The token generated for the submission.
- A common use-case for tokens would be when you want to have a more secure URL for accessing and displaying submission data, or allowing users to edit their own submission and not requiring any login, etc.
- Required if you wish to allow editing of submissions on front end. Pro
{submission:date}
#- The date the submission was submitted, e.g.
{submission:date format="%Y-%m-%d %g:%i %a"}
- The date the submission was submitted, e.g.
{submission:title}
#- The submission's title.
{submission:FIELD_HANDLE:value}
#- Manually access any field in the submission's form by the field's handle. If you have a field with a handle
first_name
, you can access its value by calling{submission:first_name:value}
or get its label with{submission:first_name:label}
- The following variables are available for rendering field data:
{submission:FIELD_HANDLE:value}
- the submitted value. Array values get joined via a,
separator.{submission:FIELD_HANDLE:label}
- the label of the field.{submission:FIELD_HANDLE:type}
- the type of field, e.g.checkbox_group
,textarea
, etc.
- See {submission:fields} variable pair for automated approach.
- Manually access any field in the submission's form by the field's handle. If you have a field with a handle
{submission:status}
#- The status of the submission.
- For status color, use
{submission:status_color}
, which returns the HEX value, e.g.#ff0000
- For status handle, use
{submission:status_handle}
{submission:absolute_count}
#- Returns the absolute position number of the submission within the list of results, including paginated results.
{submission:absolute_results}
#- Returns the absolute total amount of submissions being displayed in the results, including paginated results. Typically used in a conditional statement.
{submission:count}
#- Returns the position number for each result in the list of submissions (within the page, if using pagination).
{submission:total_results}
#- Returns the total amount of submissions being displayed in the results (within the page, if using pagination). Typically used in a conditional statement.
{submission:switch}
#- Allows you to switch a CSS class back and fourth for all outputted results, e.g.
{submission:switch="style_one|style_two"}
- Allows you to switch a CSS class back and fourth for all outputted results, e.g.
{submission:attachment_count}
#- Returns the total number of files uploaded across all file upload fields for the submission. For example, if you had 2 fields that were the file upload field type, and one had 2 file uploads within it, while the other had one, and each contained files uploaded, the total value would be 3.
Variable Pairs
{submission:fields}{/submission:fields}
#- Contains all fields that store values (doesn't include HTML fields, submit fields, mailing-list fields).
- The following variables are available for rendering field data:
{field:value}
- the submitted value. Array values get joined via a,
separator.{field:label}
- the label of the field{field:handle}
- the handle of the field{field:type}
- the type of field, e.g.checkbox_group
,textarea
, etc
{submission:paginate}{/submission:paginate}
#- Renders pagination for submission results. Works just like regular EE pagination, but the variable pair is prepended with
submission:
. Used in conjunction with the paginate parameter. - Can be displayed as one of two ways:
- Renders pagination for submission results. Works just like regular EE pagination, but the variable pair is prepended with
{submission:paginate}
Page {current_page} of {total_pages} pages.
{pagination_links}
{/submission:paginate}
1
2
3
4
2
3
4
{submission:paginate}
<ul class="pagination">
{pagination_links}
{first_page}
<li><a href="{pagination_url}">First</a></li>
{/first_page}
{previous_page}
<li><a href="{pagination_url}">« Previous</a></li>
{/previous_page}
{page}
<li{if current_page} class="active"{/if}><a href="{pagination_url}">{pagination_page_number}</a></li>
{/page}
{next_page}
<li><a href="{pagination_url}">Next »</a></li>
{/next_page}
{last_page}
<li><a href="{pagination_url}">Last</a></li>
{/last_page}
{/pagination_links}
</ul>
{/submission:paginate}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Conditionals
{if submission:no_results}{/if}
#- Displays its contents when there are no results found for this template tag with the given set of parameters.
Examples
Display a simple list of submissions:
<ul>
{exp:freeform_next:submissions
form="contact"
limit="20"
orderby="date" sort="desc"
}
<li>
<a href="{path='form/submission/{submission:id}'}">{submission:title}</a>
{submission:date format="%Y-%m-%d %g:%i %a"}
</li>
{if submission:no_results}
<li>There are currently no submissions for this form.</li>
{/if}
{/exp:freeform_next:submissions}
</ul>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Display a more complete table view of submissions with table heading (generated by Freeform_Next:Form tag) and pagination:
{exp:freeform_next:form
form="contact"
no_form_tags="true"
}
<h3>{form:name}</h3>
<table class="table table-striped">
<thead>
<tr>
<th>#</th>
<th>Title</th>
<th>Date</th>
<th>Status</th>
{form:fields}
{if field:can_store_values}
<th>{field:label}</th>
{/if}
{/form:fields}
<th>Files</th>
</tr>
</thead>
<tbody>
{exp:freeform_next:submissions
form="contact"
limit="20"
orderby="date" sort="desc"
paginate="bottom"
}
<tr>
<td>{submission:id}</td>
<td><a href="{path='form/submission/{submission:id}'}">{submission:title}</a></td>
<td>{submission:date format="%Y-%m-%d %g:%i %a"}</td>
<td><span style="color: {submission:status_color};">{submission:status}</span></td>
{submission:fields}
{if field:can_store_values}
<td>{field:value}</td>
{/if}
{/submission:fields}
<td>{submission:attachment_count} file{if submission:attachment_count != "1"}s{/if}</td>
</tr>
{if submission:no_results}
<tr>
<td colspan="100">There are currently no submissions for this form.</td>
</tr>
{/if}
{submission:paginate}
<tr>
<td colspan="100">
<ul class="pagination">
{pagination_links}
{first_page}
<li><a href="{pagination_url}">First</a></li>
{/first_page}
{previous_page}
<li><a href="{pagination_url}">« Previous</a></li>
{/previous_page}
{page}
<li{if current_page} class="active"{/if}>
<a href="{pagination_url}">{pagination_page_number}</a>
</li>
{/page}
{next_page}
<li><a href="{pagination_url}">Next »</a></li>
{/next_page}
{last_page}
<li><a href="{pagination_url}">Last</a></li>
{/last_page}
{/pagination_links}
</ul>
</td>
</tr>
{/submission:paginate}
{/exp:freeform_next:submissions}
</tbody>
</table>
{/exp:freeform_next:form}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Display a single submission, complete with special handling for File Upload and Table fields:
{exp:freeform_next:submissions
form="contact"
submission_id="{segment_3}"
}
<h3>{form:name} - {submission:title}</h3>
<table class="table table-striped">
{submission:fields}
<tr>
<th style="width: 20%;">{field:label}</th>
<td>
{if field:type == "file"} {!-- special handling for File fields --}
{if field:value}
{exp:file:entries file_id="{field:value}" dynamic="no"}
{if extension == "gif" OR extension == "jpg" OR extension == "jpeg" OR extension == "png"}
<img src="{file_url}" width="{width}" height="{height}" alt="{title}" />
{if:else}
<a href="{file_url}">{title}</a>
{/if}
{/exp:file:entries}
{if:else}
No file(s) uploaded
{/if}
{if:elseif field:type == "table"}
{field:layout}
<table class="form-table table" id="form-input-{field:handle}">
<thead>
<tr>
{layout:columns}
<th>{column:label}</th>
{/layout:columns}
</tr>
</thead>
<tbody>
{layout:rows}
<tr>
{row:columns}
<td>{column:value}</td>
{/row:columns}
</tr>
{/layout:rows}
</tbody>
</table>
{/field:layout}
{if:else}
{field:value}
{/if}
</td>
</tr>
{/submission:fields}
</table>
{if submission:no_results}
<div class="alert">
Sorry, no submission was found.
</div>
{/if}
{/exp:freeform_next:submissions}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Display a single submission with manually set variables:
{exp:freeform_next:submissions
form="contact"
submission_id="{segment_3}"
}
<table class="table table-striped">
<tr>
<th style="width: 20%;">Name</th>
<td>{submission:first_name:value} {submission:last_name:value}</td>
</tr>
<tr>
<th>{submission:email:label}</th>
<td>{submission:email:value}</td>
</tr>
<tr>
<th>Date Submitted</th>
<td>{submission:date format="%l, %F %j, %Y at %g:%i%a"}</td>
</tr>
{if submission:file_upload:value}
<tr>
<th>{submission:file_upload:label}</th>
<td>
{exp:file:entries file_id="{submission:file_upload:value}"}
{if extension == "gif" OR extension == "jpg" OR extension == "jpeg" OR extension == "png"}
<img src="{file_url}" width="{width}" height="{height}" alt="{title}" />
{if:else}
<a href="{file_url}">{title}</a>
{/if}
{/exp:file:entries}
</td>
</tr>
{/if}
</table>
{if submission:no_results}
<div class="alert">
Sorry, no submission was found.
</div>
{/if}
{/exp:freeform_next:submissions}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41