问题描述
我有一个接受查询类型参数的 cfc 函数(目的是运行查询查询)。
我可以使用 <cfinvoke>
成功调用该函数。
但是,我真正想做的是从隐藏的 <cfinput>
的绑定属性调用该函数,使用
bind="cfc:cfcname.somefunction(queryVar)"
,该代码失败。没有可见的错误,但看起来我的函数从未被调用过 - 我在那里有一个 cflog
。
[绑定的原因与我的问题并不真正相关,但这是因为我需要函数调用来对表单上的另一个控件做出反应 - 我已经从我的问题中提取了所有内容]
如果我用一些字符串变量替换 queryVar,该函数会被很好地调用,但显然我无法在不传入查询的情况下获得我想要的结果。
如果我使用 bind="cfc:cfcname.somefunction(#queryVar#)"
,我会得到一个
“复杂类型不能转换为简单类型”
错误。 我已经搜索了关于将查询(或任何复杂类型)从绑定传递到 cfc 的任何记录限制,但没有找到任何线索。
解决方法
您可以使用“绑定”将用户输入的数据发送到另一个页面进行处理,然后将结果发回。例如,如果您在出生日期字段上使用“绑定”。当用户选择他们的生日时,您可以将该日期发送到 CFC 或 CFM 页面并让它进行数学运算 #DateDiff('yyyy',birthdate,Now())# 并返回结果,这将是多少“年”旧”用户。
但据我所知,您无法通过“绑定”功能将查询发送到另一个页面。但是,您可以在另一个页面上再次运行查询并返回结果。
或者在页面加载后查看 JQuery 以处理进一步的处理。