javascript - Coldfusion AJAX 失败后

标签 javascript coldfusion

我一直在解决 ColdFusion 应用程序中的问题,同时我正在尝试根据 CFSelect 框中的选择填充 DIV 的内容。做出选择后,我有一个 AJAX 调用,该调用在 CFC 中执行查询,然后返回一些数据以显示在我的 DIV 中。

Here is a link to my previous question

我得到了一些很大的帮助来使我的基本代码正确,但我现在遇到了一个单独的问题。我的 AJAX 调用未返回任何数据,并且 AJAX 函数的“错误:”部分正在触发,表明我的请求存在问题。 Firebug 没有向我展示任何有用的东西。

有人可以帮忙吗?

我的选择框

<cfselect queryPosition="below" name="company_name" id="company_name" value="company_name" bind="cfc:cfcs.taxdata.getData()" bindonload="true"   tabindex="0" >
                <option>---Make A Selection---</option>

            </cfselect>

我的 JavaScript

<script>
        // populate the dropdown

          // on change of dropdown value return the cfc data into the div
        $("##company_name").change(function() {  
            var selectValue = $("##company_name").val();
            $.ajax({
                type: "GET",
                url:"cfcs/alertData.cfc?method=getAlerts",
                dataType: "json",
                data: { 
                    company_name: selectValue
                },
                success: function (data) {
                    $("##test").html(data);
                },
                error: function (data) {
                    $("##test").html('Failed');
                }
            });
        });
          </script>

我的分区

<div id="test">test</div>

我的 CFC

<cffunction name="getAlerts" access="remote" returntype="query">
    <cfargument name="company_name" type="any" required="true">

    <!--- localize function variables --->
    <cfset var alertDetail = "">

    <cfquery name="getID" datasource="#datasource#" >
        select customer_id
        from customer_table
        where company_name = <cfqueryparam value="#ARGUMENTS.company_name#" cfsqltype="cf_sql_varchar">
    </cfquery> 
    <cfquery name="alertDetail" datasource="#datasource#">
        SELECT ID
        FROM   customer_alerts
        <!--- adjust cfsqltype if needed --->
        WHERE customer_id = <cfqueryparam value="#getID.customer_id#" cfsqltype="cf_sql_varchar"> AND alert_status = 'on'
    </cfquery>    

    <cfreturn alertDetail>
</cffunction>

最佳答案

首先,请记住将“returnFormat: 'json'”添加到您的 ajax 请求中。这会自动将 CF 对象转换为 json 格式。默认情况下,ColdFusion 将以 WDDX 格式(XML 规范)返回。接下来,了解序列化为 JSON 的 ColdFusion 查询以奇怪的格式返回。您可以查看我的 SerializeCFJSON jquery 插件(可在 GitHub 上获取)。最后,放弃 CFSELECT。 CFFORM 元素类型非常基本且不灵活。

这是一篇关于如何使用 ColdFusion 执行 ajax 的文章:

http://www.cutterscrossing.com/index.cfm/2011/9/26/How-I-Do-Things-ColdFusion-and-Ajax-Requests

还有我的插件的链接:

https://github.com/cutterbl/serializeCFJSON

关于javascript - Coldfusion AJAX 失败后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24064856/

相关文章:

javascript - 优化 for 循环,避免无用的查找

javascript - 如何使用jquery在按钮单击时分别交换两个div?

cookies - 如何在 Coldfusion 中检索名称是通过变量设置的 cookie?

curl - 如何创建与 Curl 等效的 ColdFusion 问题

url - 是否可以在 ColdFusion 中访问矩阵参数(用分号分隔的名称-值对)?

javascript - Firebase 删除查询结果

javascript - 如果 css() == X,否则,不工作,表单不工作

javascript - MongoDB 中的日期字段类型(及其排序)

time - ColdFusion - 从分钟数创建时间

javascript - 从 html 页面提供 javascript 文件