【发布时间】:2013-09-18 09:51:15
【问题描述】:
我的页面从页面上的 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>
【问题讨论】:
-
您的问题有点令人困惑,因为您正在混合客户端 (AJAX) 和服务器端 (
) 术语,好像它们以某种方式相关或可以交互。 #thisSpin.spinnumber#、#prizeID# 和 #employeeID# 来自哪里?发布后你在服务器上返回什么?您能否编辑代码以包含这些内容的来源,并明确什么是客户端代码和什么是服务器端代码(这是为了帮助您了解您在做什么) -
我使用 cfset 将我的员工/奖品变量设置为 cfquery 中的随机行。这都是在客户端页面 (index.cfm) 上触发的。我更新了原始帖子以获得更多详细信息。
-
感谢您更新您的问题。我认为如果您放弃“页面”的概念而考虑“CFML 代码”和“Javascript 代码”可能会有所帮助,因为虽然两者可能驻留在同一个 file 中,但它们不会被执行同时。阅读本文可能会有所帮助:cfmlblog.adamcameron.me/2012/10/…。当您致电
Claim()时,您没有回答我关于实际发生的情况 的问题。您的问题实际上并没有真正说明问题所在。我知道它不会做“你想要的”,而是哪一部分? -
目前,当我调用 claim() 时,claim.cfm 操作页面成功获取 cfform 数据并执行查询以更新奖品数量并记录赢得所述奖品的员工,但我想在 ajax/jquery 中执行此操作,减少对 cfform 和 Coldfusion.Ajax 的依赖。我会看看你的博客,ty。
标签: jquery ajax coldfusion