使用Coldfusion、Ajax和CFC进行数据查找

使用Coldfusion、Ajax和CFC进行数据查找,ajax,coldfusion,cfc,Ajax,Coldfusion,Cfc,我使用字符串而不是整数作为键,使用ColdFusion和Ajax在表上进行数据查找。我的测试没有返回任何值,我完全被踩死了。我尝试将ajax值转换为字符串 HTML 冷熔合元件 <cfcomponent> <cffunction name="getuser" access="remote" returntype="string"> <cfargument name="init" type="string" required="yes">

我使用字符串而不是整数作为键,使用ColdFusion和Ajax在表上进行数据查找。我的测试没有返回任何值,我完全被踩死了。我尝试将ajax值转换为字符串

HTML

冷熔合元件

<cfcomponent>
  <cffunction name="getuser" access="remote" returntype="string">
    <cfargument name="init" type="string" required="yes">

      <cfquery name="getUser" datasource="#DSN#">
       SELECT       team
         FROM       users
        WHERE       init = <cfqueryparam value = "#arguments.init#" cfsqltype="cf_sql_varchar">
      </cfquery>

    <cfreturn getUser.TEAM /> 
  </cffunction>
</cfcomponent>

问题是在Ajax调用中传递字符串initval

换句话说,jQuery不会神奇地转变

"testrun.cfc?method=getuser&init=initVal"
进入

改为传递变量的值,并将URL参数构建完全留给jQuery:

$("#init").blur(function() {
    var initval = $.trim(this.value);
    if (!initval) return;

    $.get("testrun.cfc" {
        method: "getuser",
        init: initval
    }).done(function (res) {
        $("#team").val(res);
    });
});

打开浏览器开发人员工具中的“网络”选项卡,查看正在发生的Ajax请求,这会有所帮助。

问题在于,您在Ajax调用中传递了字符串initval

换句话说,jQuery不会神奇地转变

"testrun.cfc?method=getuser&init=initVal"
进入

改为传递变量的值,并将URL参数构建完全留给jQuery:

$("#init").blur(function() {
    var initval = $.trim(this.value);
    if (!initval) return;

    $.get("testrun.cfc" {
        method: "getuser",
        init: initval
    }).done(function (res) {
        $("#team").val(res);
    });
});

它有助于在浏览器的开发人员工具中打开“网络”选项卡,并在Ajax请求发生时查看它们。

如果在ColdFusion之外运行查询,查询是否返回任何记录?@Dan yes它返回一个值,但是该值不显示在团队表单字段中。如果在ColdFusion之外运行,查询是否返回任何记录?@Dan yes它返回一个值,但该值不显示在团队表单字段中。感谢您的快速回复,我已经实现了您的方法。但我仍然没有从数据库中得到数据。很难说。我不知道你的数据库,也看不到你在做什么。在浏览器中手动打开URL testrun.cfc?method=getuser&init=SomeTeamId。它显示了什么?在CFC上工作,直到它显示SomeTeamId的预期结果。在那之后,jQuery方面的工作也可能开始了。我按照建议打开了URL,并从数据库中获取了要显示的值。问题是表单字段中没有显示值。明白了!我在cffunction标记中将returnformat设置为plain@托马拉克谢谢你的帮助。你可以看出我完全迷路了。我感谢你的帮助-我相信你学到了很多,这就是重点谢谢你的快速回复,我已经实现了你的方法。但我仍然没有从数据库中得到数据。很难说。我不知道你的数据库,也看不到你在做什么。在浏览器中手动打开URL testrun.cfc?method=getuser&init=SomeTeamId。它显示了什么?在CFC上工作,直到它显示SomeTeamId的预期结果。在那之后,jQuery方面的工作也可能开始了。我按照建议打开了URL,并从数据库中获取了要显示的值。问题是表单字段中没有显示值。明白了!我在cffunction标记中将returnformat设置为plain@托马拉克谢谢你的帮助。你可以看出我完全迷路了。我感谢你的帮助-我相信你学到了很多,这就是重点