我最近在ColdFusion 11中开始开发,并且我遇到了cfselect的“bind”属性的一些问题。我一直在网上研究和阅读可用的文档,但我仍然有同样的错误。
我正在尝试使用两个选择框构建数据输入表单,其中选择框2中的值取决于选择框1中的选择。
提前感谢您的帮助。这是代码:
dsp_DataEntry.cfm:
<html>
<head>
<title>Insert Data Form</title>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<h2>Insert Data Form</h2>
<cfset dataObj = CreateObject("component", "qry_DDContents")>
<table>
<cfform id = "entry" name="entry" action="" method="post">
<tr>
<td>Plant: </td>
<td>
<cfinput type="text" name="plantID" size="10" required="true" value=#session.FacilityID# >
</td>
</tr>
<tr>
<td>Process:</td>
<td><cfselect name="ItemId" bind="cfc:qry_DDContents.getData()" bindonload="true" multiple="false" /></td>
</tr>
<tr>
<td>Subprocess:</td>
<td><cfselect name="DepItemId" bind="cfc:qry_DDContents.getSub({ItemId})" multiple="false"/></td>
</tr>
<tr>
<td>Equipment Name:</td>
<td><input type="Text" name="equipmentname" size="4" maxlength="20" required="true"></td>
</tr>
<tr>
<td>Date out of Service:</td>
<td><input type="date" name="dateOutOfService" required="true"></td>
</tr>
<tr>
<td>Ecpected Return To Service:</td>
<td><input type="date" name="dateExpectedReturnToService" required="true"></td>
</tr>
<tr>
<td>Date Returned To Service:</td>
<td><input type="date" name="dateReturnedToService" required="true"></td>
</tr>
<tr>
<td>Reason:</td>
<td><input type="Text" name="reason" size="150" maxlength="255"
required="true"></td>
</tr>
<tr>
<td> </td>
<td><input type="Submit" value="Submit"> <input type="Reset"
value="Clear Form"></td>
</tr>
</cfform>
<!--- end html form --->
</table>
</body>
</html>
qry_DDContents.cfc
<cfcomponent output="false" >
<cfparam name="attributes.DepItemID" default="-1" >
<cffunction name="getData" access="remote" returntype="query" returnformat="JSON">
<cfset var data="">
<cfset var result=ArrayNew(2)>
<cfset var i=0>
<cfquery name="data" datasource="#session.dbsource#" >
SELECT ItemId, ItemDescription FROM attribute_lookup WHERE (AttrId = 4)
</cfquery>
<cfloop index="i" from="1" to="#data.RecordCount#">
<cfset result[i][1]=data.ItemId[i]>
<cfset result[i][2]=data.ItemDescription[i]>
</cfloop>
<cfreturn result>
</cffunction>
<cffunction name="getSub" access="remote" returntype="query" returnformat="JSON">
<cfargument name="ItemID" type="char" required="true" >
<cfset var data="">
<cfset var result=ArrayNew(2)>
<cfset var i = 0>
<cfquery name = "data" datasource="#session.dbsource#">
SELECT DepItemId, ItemId, ItemDescription FROM attribute_lookup_depend WHERE (AttrId = 5) and (DepItemId =
<cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.ItemID#">)
</cfquery>
<cfloop index="i" from="1" to="#data.recordCount#">
<cfset result[i][2]=data.ItemId[i]>
<cfset result[i][1]=data.DepItemId[i]>
</cfloop>
<cfreturn result>
</cffunction>
</cfcomponent>
答案 0 :(得分:2)
我能够在本地复制此内容。我将CFFORM移到了表格标签之外,它可以工作。这是在FireFox和Chrome中。