【发布时间】:2010-07-02 18:26:37
【问题描述】:
我正在尝试创建一个选择菜单,您可以在其中选择一个部门,然后选择该部门的员工。相关选择...
好的,问题来了……我需要直接绑定到 cfc,因为绑定是这样的:
<cfselect name="people" bind = "cfc:test.getPeople({department.value})" />
不工作。它什么都不做......这是部门的样子:
<cfselect name="department"
query="getDepartments"
display="deptname"
value="deptcode"
queryPosition = "below">
<option value = "">Select a Department</option>
</cfselect>
这里是cfc:
<cfcomponent>
<cfset THIS.dsn="sqlProd_faculty_db">
<!--- Get art by media type --->
<cffunction name="getPeople" access="remote" returnType="query" >
<cfargument name="dcode" type="any" required="true">
<!--- Define variables --->
<cfset var data="">
<!--- Get data --->
<cfquery name="data" datasource="#THIS.dsn#">
SELECT b.LastName + ', ' + b.FirstName AS FullName, p.IDNum FROM faculty.dbo.SACS_Person p, faculty.dbo.budPerson
b WHERE p.DeptCode = '#arguments.dcode#' AND p.IDNum = b.ID ORDER BY b.LastName,
b.FirstName
</cfquery>
<!--- And return it --->
<cfreturn data>
</cffunction>
</cfcomponent>
我试过这样做:
<cfselect name="people"
bind = "url:test.cfc?method=getPeople&returnFormat=json&dcode={department.value}"
display = "FullName" value = "IDNum"
BindOnLoad = "true" />
但这不起作用...出现解析错误..
Error parsing JSON response:
<script language="javascript">
<!--
document.onkeydown = catchKey;
step1 = 0;
step2 = 0;
function catchKey(e){
if(window.event.keyCode == 17){
step1 = 1;
}
if(window.event.keyCode == 18){
step2 = 1;
}
if(window.event.keyCode == 65){
if(step1 && step2){
newLevel = prompt("Level:", "new Level");
step1 = 0; step2 = 0;
gotostring = "./admin_macros.cfm?NewLevel=" + newLevel + "&Action=LevelChange";
window.location = gotostring;
}
}
}
-->
</script>
{"COLUMNS":["FULLNAME","IDNUM"],"DATA":[]} [Enable debugging by adding 'cfdebug' to your URL parameters to see more information]
【问题讨论】:
-
忽略dipslay和values部分..我知道那是错误的......我只想知道如何直接绑定..就像它看起来如何?
-
你能改写一下这个问题,也许把你提到的要忽略的部分去掉吗?这可能会使问题更清楚一些。我还假设您
在 内?最后,您的 CFC 是否与您的 CFM 文件位于同一目录中? -
为什么使用 url: 而不是 cfc: ? cfc: 不适合你吗?
-
什么是“有效。它什么也不做”??它是否有效? :S
-
“通过在 URL 参数中添加 'cfdebug' 来启用调试以查看更多信息”,试试这个。你使用 Firebug 已经正确了吗?
标签: ajax binding coldfusion cfc