绑定失败:CF11中找不到项目错误

时间:2015-05-15 16:32:30

标签: javascript jquery html coldfusion

我最近在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>&nbsp;</td> 
    <td><input type="Submit" value="Submit">&nbsp;<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>

1 个答案:

答案 0 :(得分:2)

我能够在本地复制此内容。我将CFFORM移到了表格标签之外,它可以工作。这是在FireFox和Chrome中。