如何从javascript调用cfm页面上的cffunction?
How to call cffunction on the cfm page from javascript?
我想知道我是否可以在我的 cfm 页面上调用 cffunction
?我有 onClick
按钮,可以调用同一页面上的 cffunction
。我还尝试将 cfcomponent
放在我的函数周围,但出现此错误:
Invalid CFML construct found on line 94 at column 1.
ColdFusion was looking at the following text:
<
The CFML compiler was processing:
< marks the beginning of a ColdFusion tag.Did you mean LT or LTE?
到目前为止我有这个:
<cffunction name="getRecords" access="remote">
<script>
alert('test');
</script>
</cffunction>
这是我的 JS 函数:
function getRecs(){
try{
location.href = 'myCFMpage.cfm?method=getRecords';
}catch(err){
alert('Error')
}
}
我不确定这是否可行,我当前的代码没有在 cffunction
中触发警报。我尝试这样做的原因是因为我在这个页面上有一个 cfquery
并且我想在用户单击按钮然后进行一些操作时从该查询中获取数据。如果有人可以告诉我这是否可行或者有更好的方法来解决这个问题,请告诉我。
以前我都是用cfajaxproxy来完成从组件(cfc)到javascript的调用功能。 (由于不同的开发范式,我不再这样做了,但这可能有助于您继续前进。)首先,用您的函数创建一个 cfc。
<cfcomponent>
<cffunction name="getRecords" access="remote" returntype="string">
<cfquery name="someQuery" datasource="someDataSource">
select * from records
</cfquery>
<cfreturn serializeJSON(someQuery,'struct')>
</cffunction>
</cfcomponent>
在您的模板 .cfm 文件中,您将使用 cfajaxproxy 在 javascript.
中为我们声明组件
<cfajaxproxy cfc="yourComponent" jsclassname="jsClass">
然后,在同一模板中,在您的 javascript 中,您将执行以下操作,您将能够将 cfc 函数用作 jsClass 的方法。
<script type="text/javascript">
var _myFuncs = new jsClass()
function buttonClicked() {
var _records = JSON.parse(_myFuncs.getRecords());
}
</script>
希望这能提供一些见解。那里有很多解决方案,这是一个。我当前的开发模式是使用 Angular 并对 CF 组件执行 $http 调用。我在 cffunctions 中推出自己的 JSON。但这就是我开始使用普通 JS 和 CF 的方式。
我想知道我是否可以在我的 cfm 页面上调用 cffunction
?我有 onClick
按钮,可以调用同一页面上的 cffunction
。我还尝试将 cfcomponent
放在我的函数周围,但出现此错误:
Invalid CFML construct found on line 94 at column 1.
ColdFusion was looking at the following text:
<
The CFML compiler was processing:
< marks the beginning of a ColdFusion tag.Did you mean LT or LTE?
到目前为止我有这个:
<cffunction name="getRecords" access="remote">
<script>
alert('test');
</script>
</cffunction>
这是我的 JS 函数:
function getRecs(){
try{
location.href = 'myCFMpage.cfm?method=getRecords';
}catch(err){
alert('Error')
}
}
我不确定这是否可行,我当前的代码没有在 cffunction
中触发警报。我尝试这样做的原因是因为我在这个页面上有一个 cfquery
并且我想在用户单击按钮然后进行一些操作时从该查询中获取数据。如果有人可以告诉我这是否可行或者有更好的方法来解决这个问题,请告诉我。
以前我都是用cfajaxproxy来完成从组件(cfc)到javascript的调用功能。 (由于不同的开发范式,我不再这样做了,但这可能有助于您继续前进。)首先,用您的函数创建一个 cfc。
<cfcomponent>
<cffunction name="getRecords" access="remote" returntype="string">
<cfquery name="someQuery" datasource="someDataSource">
select * from records
</cfquery>
<cfreturn serializeJSON(someQuery,'struct')>
</cffunction>
</cfcomponent>
在您的模板 .cfm 文件中,您将使用 cfajaxproxy 在 javascript.
中为我们声明组件<cfajaxproxy cfc="yourComponent" jsclassname="jsClass">
然后,在同一模板中,在您的 javascript 中,您将执行以下操作,您将能够将 cfc 函数用作 jsClass 的方法。
<script type="text/javascript">
var _myFuncs = new jsClass()
function buttonClicked() {
var _records = JSON.parse(_myFuncs.getRecords());
}
</script>
希望这能提供一些见解。那里有很多解决方案,这是一个。我当前的开发模式是使用 Angular 并对 CF 组件执行 $http 调用。我在 cffunctions 中推出自己的 JSON。但这就是我开始使用普通 JS 和 CF 的方式。