好吧,所以人们没有清楚地理解我的问题,所以我删除了其他人已经提出问题的网址,但我没有得到完美的答案..
所以这里是问题......
我希望在 ColdFusion 中编写一个动态下拉列表。我想要的是由上述下拉列表填充的下拉列表(例如:选择省(BC)将使用该省内的所有城市填充城市下拉列表)。省数据将从 ColdFusion 查询中收集,并与城市数据相同。
请不要使用 JavaScript,不要 AJAX,不要使用 ColdFusion CFC,不要多于或少于一些 ColdFusion 标签... :( 逻辑代码应位于一个 .cfm 文件本身中。
- 编辑 -
@查尔斯·希金斯
似乎无法让它工作。它抛出“调用 CFC BinFcns.cfc 时出错:内部服务器错误”“请告诉我哪里做错了,这里是代码..
这是'index.cfm'
<cfquery name="qstates" datasource="info">
SELECT states
FROM info
GROUP BY states
</cfquery>
<html>
<head>
</head>
<body>
<cfform>
<cfselect name="DropDown1" bind="cfc:BinFcns.Method({DropDown1})">
<cfoutput query="qstates"><option>#states#</option></cfoutput>
</cfselect>
<cfselect name="DropDown2" bind="cfc:BinFcns.Method({DropDown1})" />
</cfform>
</body>
</html>
这个是.cfc,'BinFcns.cfc'
<cfcomponent output="true">
<!--- set function name --->
<cffunction name="Method" access="remote" returnType="array">
<!--- this is what you passed to the CFC via the {} think in the select --->
<cfargument name="Selected" type="numeric" required="true">
<!--- Define array to produce the drop down --->
<cfset var data="">
<cfset var result=ArrayNew(2)>
<cfset var i=0>
<!--- Get data --->
<cfquery name="data" datasource="info">
SELECT *
FROM info
Order by cities
</cfquery>
<!--- Convert results to array --->
<cfloop index="i" from="1" to="#data.RecordCount#">
<cfset result[i][1]=data.DropDownID[i]>
<cfset result[i][2]='#DropDownTEXT#'>
<!--- determine which is selected via what you passed and something in the database --->
<cfif data.DropDownID[i] eq #Selected#>
<cfset result[i][3]=true>
</cfif>
</cfloop>
<!--- And return it --->
<cfreturn result>
</cffunction>
</cfcomponent>