所以对于我的生活,我无法弄清楚为什么我的CFC功能没有运行... firefug说它运行,但没有任何反应。
<cffunction name="deleteRequest" access="remote" returntype="void">
<cfargument name="id" type="numeric" required="yes">
<cfquery name = "deleteRequests" datasource = "#application.dsn#">
DELETE FROM requests
WHERE ID = <cfqueryparam cfsqltype="cf_sql_numeric" value = "#id#">
</cfquery>
<cfreturn>
</cffunction>
JQUERY / JavaScript的:
$("input[name=delete]").click(function(){
var z = deleteRequest($(this).attr("id"));
var y = $(this).attr("id");
if(z){
$.ajax({
type: 'POST',
url: '/cfc/request.cfc',
data: {id: y, method: "deleteRequest"}
});
}
});
function deleteRequest(id){
var x = confirm("Are you SURE you want to DELETE this?");
if(x){return 1;}
return 0;
}
jquery正在工作......它正在发送它,并且据说到了那里......但没有任何反应。我测试了CFC并手动调用它并且它可以工作。我猜这与我的变量有关。我想也许id需要parseInt(),但这也无济于事。
它应该做的就是从数据库中删除条目。我做错了什么?
*对不起这个简单的问题。我在JQUERY + CFC上遇到了很多麻烦......我一直在寻找好的教程......但我似乎永远都找不到好的初学者。
更新:尝试更改网址以在其中包含方法参数并将访问权限更改为公开...仍然是相同的结果。
答案 0 :(得分:1)
请尝试:
<cffunction name="deleteRequest" access="public" returntype="void">
<cfquery name = "deleteRequests" datasource = "#application.dsn#">
DELETE FROM requests
WHERE ID = <cfqueryparam cfsqltype="cf_sql_numeric" value = "#id#">
</cfquery>
<cfreturn>
</cffunction>
$("input[name=delete]").click(function(){
var z = deleteRequest($(this).attr("id"));
var y = $(this).attr("id");
if(z){
$.ajax({
type: 'POST',
url: '/cfc/request.cfc?method=deleteRequest',
data: {id: y}
});
}
});
function deleteRequest(id){
var x = confirm("Are you SURE you want to DELETE this?");
if(x){return 1;}
return 0;
}
答案 1 :(得分:0)
我们在应用程序中使用这种类型的调用非常麻烦。查看代码,我们倾向于使用dknaack建议的样式,URL中的方法名称,但作为参数提供的数据。
您是否尝试使用Fiddler(fiddler2.com)来拦截调用以确保它肯定会调用您的代码。
除此之外,我会在你的方法中使用<CFLOG>
来记录它传递的内容,或者如果你已经设置好使用调试器,我会使用它。