为什么我的 jQuery 无法识别 CFC 的返回值?

发布于 2024-09-09 15:57:02 字数 1708 浏览 8 评论 0原文

我有一个页面使用 .post 提交到我的 cfc。我知道该函数工作正常,因为数据库正在更新,但正在触发的警报是“else”语句中的警报。

你们中有人能明白为什么我的回报没有触发正确的警报吗?我没有正确捕获回报吗?

我的一些变量是为了测试目的而硬编码的......

jQuery:

$(document).ready(function() {
    var theID = $('#window_one h1').attr('name').split("-")[1];
    var gateway = ("001");
//Populate the form
    $('#theText').attr('value', $('#window_one h1').html());
    $('#texteditform').submit(function(e){
         //stop the form submission
      e.preventDefault()                               
        var newText = $('#theText').val();
        //CFC
        $.post("cfc/engine.cfc?method=updateText&returnformat=json", 
            {text:newText, field:theID, gateway_id:gateway},
            function(res) {
                //Handle the result
                if(res == "true") {
                    alert("worked fine");
                } else {
                    alert("Didn't Work");
                }
            });
    });                        
});

</script>

受控外国公司

 <cffunction name="updateText" access="remote" output="no" returntype="boolean">


    <cfargument name="field" type="string" required="yes">
    <cfargument name="text" type="string" required="yes">
    <cfargument name="gateway_id" type="string" required="yes">
<cfquery datasource="#application.datasource#" username="#application.username#" password="#application.password#">
    UPDATE gateway
    SET #arguments.field# = <cfqueryparam value="#arguments.text#" cfsqltype="cf_sql_varchar">
    WHERE gateway_id = #arguments.gateway_id#
  </cfquery>
  <cfreturn true>
</cffunction>

I have a page that uses a .post to submit to my cfc. I know the function works fine because the database is being updated but the alert that's being fired is the one in the 'else' statement.

Can any of you see why my return isn't firing the correct alert? Am I not capturing the return properly?

Some of my variables are hard coded for testing purposes...

The jQuery:

$(document).ready(function() {
    var theID = $('#window_one h1').attr('name').split("-")[1];
    var gateway = ("001");
//Populate the form
    $('#theText').attr('value', $('#window_one h1').html());
    $('#texteditform').submit(function(e){
         //stop the form submission
      e.preventDefault()                               
        var newText = $('#theText').val();
        //CFC
        $.post("cfc/engine.cfc?method=updateText&returnformat=json", 
            {text:newText, field:theID, gateway_id:gateway},
            function(res) {
                //Handle the result
                if(res == "true") {
                    alert("worked fine");
                } else {
                    alert("Didn't Work");
                }
            });
    });                        
});

</script>

The CFC

 <cffunction name="updateText" access="remote" output="no" returntype="boolean">


    <cfargument name="field" type="string" required="yes">
    <cfargument name="text" type="string" required="yes">
    <cfargument name="gateway_id" type="string" required="yes">
<cfquery datasource="#application.datasource#" username="#application.username#" password="#application.password#">
    UPDATE gateway
    SET #arguments.field# = <cfqueryparam value="#arguments.text#" cfsqltype="cf_sql_varchar">
    WHERE gateway_id = #arguments.gateway_id#
  </cfquery>
  <cfreturn true>
</cffunction>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

远昼 2024-09-16 15:57:02

由于 CF 生成输出的方式,您有额外的空白。您需要确保 cfc 本身设置为 output="false"...可能需要进一步调整,但这应该可以帮助您开始。

这是CF比较烦人的功能之一

You have extra whitespace because of the way that CF generates its output. You need to make sure that the cfc itself is set to output="false"... May take some further wiggling around but that should get you started.

It's one of the more annoying features of CF

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文