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, чтобы перейти на страницу благодарности.

Другие вопросы по тегам