我是 ColdFusion 的新手,刚开始学习 Ajax。我的问题是,我在网上找到了一些很酷的代码来实现两个下拉菜单,第二个在哪里取决于从第一个中选择的内容。但目标是从选择查询中提取下拉列表中的所有值。
我正在使用我刚刚了解的绑定功能。第一次下拉中的所有内容都正确拉动。但问题是第二个。我从 AJAX 记录器得到的错误是"Error invoking: Error Executing Database Query"
任何建议将不胜感激。也提前感谢您的帮助。
选择.cfc
<cfcomponent output="false">
<!--- Get array of Catagory Description types --->
<cffunction name="cat_description" access="remote" returnType="array">
<!--- Define variables --->
<cfset var data="">
<cfset var result=ArrayNew(2)>
<cfset var i=0>
<!--- Get data --->
<cfquery name="getServiceCat" datasource="SOME_DATABASE">
SELECT DISTINCT CAT_DESC
FROM service_table
ORDER BY CAT_DESC
</cfquery>
<!--- Convert results to array--->
<cfloop index="i" from="1" to="#getServiceCat.recordcount#">
<cfset result[i][1]=getServiceCat.CAT_DESC[i]>
<cfset result[i][2]=getServiceCat.CAT_DESC[i]>
</cfloop>
<!--- And return it --->
<cfreturn result>
</cffunction>
<!--- Get Service Type by Cat description type --->
<cffunction name="getServiceType2" access="remote" returnType="array">
<cfargument name="CAT_DESC" type="string" required="true">
<!--- Define variables --->
<cfset var data="">
<cfset var result=ArrayNew(2)>
<cfset var i=0>
<!--- Get data --->
<cfquery name="getServiceType2" datasource="SOME_DATABASE" dbtype="query">
SELECT DISTINCT com_service_code, report_desc
FROM service_table
WHERE CAT_DESC = #ARGUMENTS.CAT_DESC#
ORDER BY report_desc
</cfquery>
</cfif>
<!--- Convert results to array --->
<cfloop index="i" from="1" to="#getServiceType2.recordcount#">
<cfset result[i][1]=getServiceType2.com_service_code[i]>
<cfset result[i][2]=getServiceType2.report_desc[i]>
</cfloop>
<!--- And return it --->
<cfreturn result>
</cffunction>
</cfcomponent>
以上是处理所有查询的cfc。此解决方案的主要原因之一是表单中所需代码的简单性。
...
<td>Select Category: <cfselect name="catdesc"
bind="cfc:select.cat_description()"
bindonload="true"/><br />
</td>
...
<td>Select Service: <cfselect name="service"
bind="cfc:select.getServiceType2({catdesc})"
bindonload="false"/>
</td>
我已经搜索了将近 2 天,试图找到查询错误的解决方案。我知道查询在 SQL 中工作,所以我相信这个问题与 AJAX 有关,并且没有正确实现第二次下拉的 WHERE 子句。
同样,任何建议或建议都会很棒。此外,如果您以另一种方式执行此解决方案,我也很乐意尝试。正如我所说,我对这种语言非常陌生。仅 2 周。