【发布时间】:2010-06-22 23:38:55
【问题描述】:
这适用于 mySQL 后端
在表格中...
<cfselect name="to" size="1" bind="cfc:cfcs.messages.getOrganisations()" bindonload="yes" value="organisationID" display="organisationName" required="Yes">
</cfselect>
在cfc中
<cffunction access="remote" name="getOrganisations" output="false" returntype="query" displayname="Get organisations list" hint="This method returns a list of organisations as a query.">
<cfquery name="getOrganisations" datasource='myData'>
SELECT organisationID, organisationName, acceptsReferral, metadataTemplate
FROM organisations
WHERE acceptsReferral
ORDER BY organisationName ASC;
</cfquery>
<cfreturn getOrganisations>
</cffunction>
但如果我尝试
<cffunction access="remote" name="getOrganisations" output="false" returntype="query" displayname="Get organisations list" hint="This method returns a list of organisations as a query.">
<cfquery name="getOrganisations" datasource='myData'>
SELECT '0' AS organisationID, 'Select' AS organisationName, false AS acceptsReferral, 0 AS metadataTemplate
FROM organisations
UNION
(SELECT organisationID, organisationName, acceptsReferral, metadataTemplate
FROM organisations
WHERE acceptsReferral
ORDER BY organisationName ASC)
</cfquery>
<cfreturn getOrganisations>
</cffunction>
为了尝试选择查询的前导行,我在 firebug 中收到此 AJAX 错误“JSON 序列化失败:无法将二进制数据序列化为 JSON。”
Henry 的建议解决了上述问题,但我再次对下一点有点困惑,试图将两个选择链接起来。
这行得通...
<cfselect name="attentionOf" size="1" bind="cfc:cfcs.messages.getOrganisationMembers({to})" bindonload="false" value="userID" display="name" required="No" queryPosition="below">
<option value="0">Select</option>
</cfselect>
...但是如果我尝试使用绑定字段传入 DSN,我会从中得到“错误解析绑定”
<cfselect name="attentionOf" size="1" bind="cfc:cfcs.messages.getOrganisationMembers({to}, 'mySqlData')" bindonload="false" value="userID" display="name" required="No" queryPosition="below">
<option value="0">Select</option>
</cfselect>
【问题讨论】:
-
如果您在本地调用 cfquery 是否有效? p.s.不要忘记 var-scope 你的“getOrganisations”变量。
-
是的,如果我在本地调用,它会列出顶部带有 select 的查询,但是对于两个查询中的第二个,它无法 ORDER BY。所以 SQL 不会出错。我不明白 JSON 错误。
标签: mysql ajax coldfusion union cfc