我的页面会创建一些随机变量来为图纸挑选奖品和获奖者,我想在获奖者点击按钮获得奖品后,将获奖者及其奖品写入桌面。
问题是我希望他们留在页面上,以便在没有声明的情况下再次挑选奖品。
我能想出的最佳解决方案是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由随机选择的奖品决定。
答案 0 :(得分:3)
亚当是对的。
虽然AJAX就是你所追求的,但ColdFusion的AJAX相关标签却不是你想要的。
花时间学习JQuery和AJAX(这不是太难,CF社区有一些很好的例子和指南)并且做得恰到好处;根据您的示例要求,您应该立即启动并运行。
这样您就可以正确管理您可能需要的任何日志记录和错误处理。祝你好运!
答案 1 :(得分:1)
听起来ColdFusion.Ajax.submitForm会对你有用。
一般来说,我认为您正在寻找AJAX请求。