gpt4 book ai didi

jquery - 我应该如何使用 ajax post 将变量发送到 Coldfusion 操作页面?

转载 作者:行者123 更新时间:2023-12-01 08:02:41 24 4
gpt4 key购买 nike

我的页面从页面上的 cfquery 生成随机变量,用作随机奖品和赢得奖品的随机员工。

<cfset prizeID="#prize.prize_ID[variables.prizeRow]#"> 

然后,我在页面上有一个 cfform,在其中将文本输入设置为这些变量,并使用以下代码将其提交到服务器操作页面,其中数据库更新我的表格,指示已领取奖品:

function submitClaim() { 
ColdFusion.Ajax.submitForm('claimyourprize', 'claim.cfm');
}

我试图找到一种替代方法,使用 Ajax 将变量(prizeID、winnerID 等)发送到服务器。

这是我所得到的最接近的结果:

    function Claim() {
$.ajax({
type: "POST",
url: "claim.cfm",
data: { claimedPrize: "#prizeID#", claimedEmployee: "#employeeID#"}
}).done(function( ) {
alert( "claimed" );
})
}

目前,我正在单击按钮时调用该函数来“领取”奖品。

这是对我的 Claim.cfm 的查询之一:

    <cfquery name="updateQuantity" datasource="christmas">
UPDATE PRIZES
SET QUANTITY = QUANTITY - 1
WHERE prize_ID = [ID sent from the client needs to go here]
</cfquery>

最佳答案

您正在向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。

claim.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 );
})
}

关于jquery - 我应该如何使用 ajax post 将变量发送到 Coldfusion 操作页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18790876/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com