【问题标题】:ColdFusion - Form variables empty after form submitColdFusion - 表单提交后表单变量为空
【发布时间】:2018-10-11 14:35:28
【问题描述】:

我的问题引用了此 stackoverflow 帖子中提供的以下问题/答案:Form Variables are not showing up after form submit. ColdFusion

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

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

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

我遇到的问题是:

1) 永远不会发生重定向

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

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

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

我不明白为什么将数据写入数据库时​​表单结构为空,而且我不知道为什么重定向不起作用。谁能解释一下为什么会发生这种情况?

【问题讨论】:

  • 这比我们对stackoverflow.com/questions/22875580/… 的评论要好。但是,拥有您尝试过的代码会很有用。有许多不同的方法来制作表单并提交它。最后但并非最不重要的一点是,不要太担心反对票,但一定要准备好为什么人们反对票。我不会对此投反对票,但我可以理解为什么有人会投反对票。它缺乏你正在做什么的具体例子。

标签: forms redirect coldfusion submission cflocation


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

【讨论】:

  • 这是我要推荐的。使用相同的页面来处理提交。将处理表单提交的逻辑放在页面顶部。无需重定向。基本的表单提交模式。
  • 詹姆斯-非常感谢。这帮助了我。自从我在 ColdFusion 中编码以来已经有一段时间了。我更熟悉 PHP 和 C#,显然我把它变成了比我需要的更复杂的东西。
猜你喜欢
  • 2015-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多