ColdFusion - переменные формы пустые после отправки формы

Мой вопрос ссылается на следующий вопрос / ответ, представленный в этом сообщении stackru: Переменные формы не отображаются после отправки формы. Холодный синтез

Я хотел прокомментировать в вышеупомянутом посте, но мне не хватает очков репутации. Я вижу ответ Сэмюэля Дили выше, указывающий, что использование cflocation или location.replace() может привести к тому, что переменные формы не будут отображаться. Это именно то, что происходит в моем сценарии.

У меня есть простая форма регистрации заявки. После отправки формы данные формы отправляются на страницу с именем addCampaign.cfm. addCampaign.cfm содержит код, который будет записывать регистрационные данные в базу данных. После записи информации о регистрации в базу данных, я проверяю, что информация была записана в базу данных. Затем я перенаправляю пользователя на определенную страницу, если регистрация прошла успешно, а если не удалась, то перенаправляю обратно на страницу формы регистрации с соответствующим сообщением об ошибке.

Я попытался использовать оба для перенаправления, и попытался с помощью javascript location.replace(), оба приводят к одной и той же проблеме.

Проблема, с которой я сталкиваюсь, заключается в том, что:

1) Перенаправление никогда не происходит

2) Я использую для отображения структуры, но она перечисляет ее как пустую

3) Я удалил cflocation и location.replace() и могу убедиться, что мои элементы формы существуют в структуре формы.

4) Данные формы записываются в базу данных, что очень странно, учитывая, что структура формы отображается как пустая.

Я не понимаю, почему структура формы пуста, когда данные записываются в базу данных, и, кроме того, я не знаю, почему перенаправление не работает. Кто-нибудь может дать некоторые разъяснения о том, почему это происходит?

1 ответ

Решение

Рассмотрим этот код в одном файле

<cfif cgi.request_method EQ "post">
    <cfdump var="#form#">

    <!--- More importantly, DB inserts --->
</cfif>



<form method="post" action="?">
  <!--- Lots of other fields go here too --->

  <input type="submit" name="btnSubmit" id="btnSubmit" value="OK" />
</form>

Если вы делаете это таким образом, вам не нужно беспокоиться о том, что данные будут перенаправлены каким-либо образом. Вы уже на той странице, которую хотите. action="?" в основном означает отправить на то же поле, что и я уже на. Обратите внимание, что поведение файла отличается на GET против POST,

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