您正在向 Claim.cfm 页面提交表单。在 Claim.cfm 页面上,您将拥有可用的表单范围。我建议您添加一些响应,这样您就可以在客户端上得到某种结果。
function Claim() {
$.ajax({
type: "POST",
url: "claim.cfm",
data: { claimedPrize: "#prizeID#", claimedEmployee: "#employeeID#"}
}).done(function(returnresult) {
alert( returnresult );
})
}
这将是 Claim.cfm 页面
<cfif isDefined("form.claimedPrize")>
<cfquery name="updateQuantity" datasource="christmas">
UPDATE PRIZES
SET QUANTITY = QUANTITY - 1
WHERE prize_ID = <cfqueryparam value="#form.claimedPrize#" cfsqltype="CF_SQL_INTEGER" />
</cfquery>
SUCCESS!
<cfelse>
SOMETHING WENT WRONG!
</cfif>
但更好的解决方案是使用 cfc(组件)代替 cfm(模板)并将表单提交到 cffunction。
声明.cfc 文件:
<cfcomponent displayName="My claim Component">
<cffunction name="claim" output="false" access="remote" returntype="string">
<cfargument name="claimedPrize" required="true" type="numeric"/>
<cfargument name="claimedEmployee" required="true" type="numeric"/>
<cfquery name="updateQuantity" datasource="christmas">
UPDATE PRIZES
SET QUANTITY = QUANTITY - 1
WHERE prize_ID = <cfqueryparam value="#arguments.claimedPrize#" cfsqltype="CF_SQL_INTEGER" />
</cfquery>
<cfreturn "OK" />
</cffunction>
</cfcomponent>
然后 ajax 调用将如下所示:
function Claim() {
$.ajax({
type: "POST",
url: "claim.cfc?method=claim",
data: { claimedPrize: "#prizeID#", claimedEmployee: "#employeeID#"}
}).done(function(returnresult) {
alert( returnresult );
})
}