1

我的页面创建了一些随机变量来选择抽奖的奖品和获奖者,我想在获奖者单击按钮领取奖品后将获奖者及其奖品写入表格。

问题是我希望他们留在页面上,以便如果没有领取奖品,可以再次挑选奖品。

我能想出的最佳解决方案是 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 由随机选择的奖品决定。

4

2 回答 2

3

亚当是正确的。

虽然 AJAX 是您所追求的,但 ColdFusion 的 AJAX 相关标签并不是要走的路。

花时间学习 JQuery 和 AJAX(这并不难,CF 社区有一些很好的示例和指南)并正确地学习;根据您的示例要求,您应该立即启动并运行。

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

于 2013-09-05T20:58:42.650 回答
1

听起来ColdFusion.Ajax.submitForm会为您工作。

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

于 2013-09-05T17:38:24.323 回答