CFMail Вернуться в форму
У меня есть форма для обратной связи в конце моей веб-страницы, которая отправляется на мой адрес электронной почты, как только она будет заполнена и отправлена пользователями. Письмо отправляется, но браузер отправляется в файл cfm. Я хотел бы иметь возможность просто скрыть форму и заменить ее на сообщение с благодарностью. Это возможно? Если нет, то просто оставаться на веб-странице, где была форма, было бы идеально.
Спасибо всем.
3 ответа
Вы можете отправить пользователя куда угодно. Просто используйте cflocation после того, как письмо отправлено, чтобы отправить их куда-либо, или оставьте их на той же странице и просто отобразите сообщение с благодарностью.
Часто форма отправляется на одну и ту же страницу и в скрытое поле формы, которое отключает последующий оператор if. Скажем так, вы находитесь на странице form.cfm. Вы бы отправили форму, как это?
<form action="form.cfm">
<input type="hidden" name="ThisFormWasSubmitted">
// form stuff
</form>
Над формой if может быть указано if, которое либо отображает форму, либо отображает благодарность за отправленную форму, например:
<cfif structKeyExists(FORM, "ThisFormWasSubmitted")>
// process the form
// show thank you message
<cfelse>
// show the form
</cfif>
Есть, конечно, десятки вариаций этого.
В общем случае после отправки данных рекомендуется использовать перенаправление, чтобы избежать повторной отправки, если пользователь нажимает кнопку Обновить.
Тег cflocation позволит вам сделать это просто.
Я бы посоветовал вам опубликовать свои данные в "обрабатывающем" файле cfm (или, что еще лучше, в cfc), а затем использовать тег cflocation, чтобы перейти на страницу благодарности.