如何使用 jQuery 或 AJAX 显示 ColdFusion 函数的 return 值

How to display return value of ColdFusion function using jQuery or AJAX

我正在使用如下所示的 ColdFusion 函数:

<cffunction name="getdata" access="remote" output="true" returntype="string">
    <cfargument name="x" type="string" required="true">
    <cfargument name="y" type="string" required="true">
    <cfquery name="getval" datasource="#application.datasource#" result="result">
    select val from table where col1=#arguments.x# and col2=#arguments.y#
    </cfquery>

    <cfset p= #getval.val#>
    <cfreturn p>
</cffunction>

我希望在警报中打印 val 的值。当用户 select 是自动完成下拉列表中的值之一时,显示的警报应为“请验证它是否有效”。

我怎样才能做到这一点?

我尝试在自动完成的 select 事件中使用 jQuery AJAX,这里 xy 是表单上输入字段的名称:

 select: function(event, ui) {
     $.ajax({
            type: "GET",
            url: 'somepathtofunction?method=getdata&x='+ x + '&y'+ y,
            async: true,
            success: function(result) {
                alert('please verify whether it is' + result.val  );
            }
     });
}             

此外,尝试了以下代码:

alert('please verify whether it is'  +  $.get('somepathtofunction?method=getdata&x='+ x + '&y'+ y));

但其中 none 有效。

我是 jQuery AJAX 和 ColdFusion 的新手,所以我知道我写了大部分错误的代码。不对的地方还请指正

您的 AJAX 调用是正确的。有很多方法可以做到这一点。我找到了让 CF 和 JS 使用 JSON 符号的最简单方法之一。您的 CF 函数应设置为 output=true 并使用#serializeJSON()# 函数 return 数据。

需要注意的一个 'gotcha' 是 CF 默认情况下始终将 JSON 数据同化,因此您必须在区分大小写的 JS 代码中使用 return 变量的全大写版本。

这里有一些可以尝试的东西:

<cffunction name="getdata" access="remote" output="true">
    <cfargument name="x" type="string" required="true">
    <cfargument name="y" type="string" required="true">
    <cfquery name="getval" datasource="#application.datasource#" result="result">
    select val from table where col1=#arguments.x# and col2=#arguments.y#
    </cfquery>
    <cfoutput>#serializeJSON({val=getval.val})#</cfoutput>
</cffunction>




  $.ajax({
        method: "GET",
        url: "yourCFCpathhere.cfc",
        data:{
            method: "getdata",
            x: var1,
            y: var2
        },
        dataType: "json"
    }).done(function( result ) {
        alert('please verify whether it is' + result.VAL  ); //CAPS for the return var from CF
    });
});