将 cfquery 从元素绑定属性传递给 cfc 函数

问题描述

我有一个接受查询类型参数的 cfc 函数(目的是运行查询查询)。 我可以使用 <cfinvoke> 成功调用函数。 但是,我真正想做的是从隐藏的 <cfinput> 的绑定属性调用函数,使用 bind="cfc:cfcname.somefunction(queryVar)",该代码失败。没有可见的错误,但看起来我的函数从未被调用过 - 我在那里有一个 cflog。 [绑定的原因与我的问题并不真正相关,但这是因为我需要函数调用来对表单上的另一个控件做出反应 - 我已经从我的问题中提取了所有内容]

如果我用一些字符串变量替换 queryVar,该函数会被很好地调用,但显然我无法在不传入查询的情况下获得我想要的结果。 如果我使用 bind="cfc:cfcname.somefunction(#queryVar#)",我会得到一个

“复杂类型不能转换为简单类型”

错误。 我已经搜索了关于将查询(或任何复杂类型)从绑定传递到 cfc 的任何记录限制,但没有找到任何线索。

解决方法

您可以使用“绑定”将用户输入的数据发送到另一个页面进行处理,然后将结果发回。例如,如果您在出生日期字段上使用“绑定”。当用户选择他们的生日时,您可以将该日期发送到 CFC 或 CFM 页面并让它进行数学运算 #DateDiff('yyyy',birthdate,Now())# 并返回结果,这将是多少“年”旧”用户。

但据我所知,您无法通过“绑定”功能将查询发送到另一个页面。但是,您可以在另一个页面上再次运行查询并返回结果。

或者在页面加载后查看 JQuery 以处理进一步的处理。