我一直在解决 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
还有我的插件的链接:
关于javascript - Coldfusion AJAX 失败后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24064856/