1

我的问题引用了此 stackoverflow 帖子中提供的以下问题/答案:表单变量在表单提交后未显示。冷融合

我想在上面引用的帖子中发表评论,但我没有足够的声望点。我看到上面 Samuel Dealey 的回答表明使用 cflocation 或 location.replace() 可能会导致 Form 变量不显示。这正是我的场景中正在发生的事情。

我有一个简单的注册表单提交。提交表单后,表单数据将发送到名为 addCampaign.cfm 的页面。addCampaign.cfm 包含将注册数据写入数据库的代码。将注册信息写入数据库后,我验证信息已写入数据库。然后,如果注册成功,我将用户重定向到特定页面,如果不成功,则重定向回注册表单页面,并显示适当的错误消息。

我已经尝试将两者都用于重定向,并尝试使用 javascript location.replace(),两者都会导致相同的问题。

我遇到的问题是:

1)重定向永远不会发生

2)我用来显示结构,但它列为空

3)我已经删除了 cflocation 和 location.replace() 并且可以验证我的表单元素确实存在于表单结构中。

4)表单数据正在写入数据库,考虑到表单结构显示为空,这很奇怪。

我不明白为什么将数据写入数据库时​​表单结构为空,而且我不知道为什么重定向不起作用。任何人都可以澄清为什么会发生这种情况吗?

4

1 回答 1

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="?"基本上意味着提交到与我已经在同一个领域。请注意,文件的行为在GETvs上是不同的POST

于 2018-10-11T14:43:47.500 回答