これは、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 にシリアル化できません"
ヘンリーの提案は上記を解決しましたが、次のビットで再び少しイライラし、2つの選択をリンクしようとしました.
これは機能します...
<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>