如何使用 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,这里 x
和 y
是表单上输入字段的名称:
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
});
});
我正在使用如下所示的 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,这里 x
和 y
是表单上输入字段的名称:
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
});
});