按下按钮或幕后操作页面后执行cfquery?

时间:2013-09-05 17:00:39

标签: coldfusion

我的页面会创建一些随机变量来为图纸挑选奖品和获奖者,我想在获奖者点击按钮获得奖品后,将获奖者及其奖品写入桌面。

问题是我希望他们留在页面上,以便在没有声明的情况下再次挑选奖品。

我能想出的最佳解决方案是cfinput按钮引用的操作页面,但我不想打开操作页面,我只是希望该页面上的cfquery在幕后运行。

以下是我的查询示例:

<cfquery name="updateQuantity" datasource="christmas">
UPDATE PRIZES
SET QUANTITY = QUANTITY - 1
WHERE prize_ID = #prizeID#
</cfquery>

我尝试将我的按钮设置为“提交”按钮并使用cfif isDefined(“form.Submit”)在同一页面上运行cfquery,但是提交按钮刷新页面(我不想要)并写入下一个选中的获胜者而不是当前会话的prizeID:

<cfform>
<cfinput name="submit" type="submit" value="Claim Your Prize!" onClick="">
</cfform>

<cfif isDefined("form.Submit")>
<cfquery name="updateQuantity" datasource="christmas">
UPDATE PRIZES 
SET QUANTITY = QUANTITY - 1 
WHERE prize_ID = #prizeID# </cfquery>
</cfif>

prizeID由随机选择的奖品决定。

2 个答案:

答案 0 :(得分:3)

亚当是对的。

虽然AJAX就是你所追求的,但ColdFusion的AJAX相关标签却不是你想要的。

花时间学习JQuery和AJAX(这不是太难,CF社区有一些很好的例子和指南)并且做得恰到好处;根据您的示例要求,您应该立即启动并运行。

这样您就可以正确管理您可能需要的任何日志记录和错误处理。祝你好运!

答案 1 :(得分:1)

听起来ColdFusion.Ajax.submitForm会对你有用。

一般来说,我认为您正在寻找AJAX请求。