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

问题描述 投票:0回答:1

我正在使用字符串而不是整数作为键来使用ColdFusion和Ajax在表上进行数据查找。我的测试未返回任何值,因此我完全不知所措。我试图将ajax值转换为字符串。

HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
    $(document).ready(function() {
        $("#init").blur(function() {
            alert("This input field has lost its focus.");
            var initVal = JSON.stringify({'$(this).val()'});
            if(initVal != "") {
                $.get("testrun.cfc?method=getuser&init=initVal", function(res) {
                    $("#team").val=res;
                }, "JSON");
            }
        });
    });
</script>

<input type='text' name='init' id='init' /><br>
<input type='text' name='team' id='team'/>

ColdFusion组件

<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 coldfusion cfc
1个回答
0
投票

问题是您在Ajax调用中传递了string“ initval”。

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

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

进入

"testrun.cfcmethod=getuser&init=whateverYouEnteredInTheTextfield"

改为传递变量的value,并将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);
    });
});
© www.soinside.com 2019 - 2024. All rights reserved.