首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从javascript调用cfm页面上的cffunction?

如何从javascript调用cfm页面上的cffunction?
EN

Stack Overflow用户
提问于 2016-11-03 16:05:15
回答 1查看 3.3K关注 0票数 2

我想知道我能不能在我的cfm页面上打电话给cffunction?我有onClick按钮,应该调用同一页面上的cffunction。此外,我还试图将cfcomponent放在我的函数周围,但是我得到了这个错误:

代码语言:javascript
复制
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?

到目前为止我有这样的想法:

代码语言:javascript
复制
<cffunction name="getRecords" access="remote">
    <script>
        alert('test');
    </script>
</cffunction>

以下是我的JS功能:

代码语言:javascript
复制
function getRecs(){
    try{
        location.href = 'myCFMpage.cfm?method=getRecords';
    }catch(err){
        alert('Error')
    }   
}

我不确定这是否可能,我的当前代码没有在cffunction中触发警报。我之所以要这样做,是因为我在这个页面上有一个cfquery,当用户单击按钮,然后做一些操作时,我想从这个查询中获取数据。如果有人能告诉我这是否可能,或者有什么更好的方法来解决这个问题,请告诉我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-03 17:33:19

在过去,我使用cfajaxproxy来完成从组件(cfc)到javascript的调用功能。(我不再这样做了,因为不同的开发模式,但这可能会帮助您开始工作。)首先,用您的函数创建一个cfc。

代码语言:javascript
复制
<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中为我们声明组件。

代码语言:javascript
复制
<cfajaxproxy cfc="yourComponent" jsclassname="jsClass">

然后,在同一个模板中,您将在javascript中执行以下操作,您将能够使用cfc函数作为来自jsClass的方法。

代码语言:javascript
复制
<script type="text/javascript">
    var _myFuncs = new jsClass()

    function buttonClicked() {
        var _records = JSON.parse(_myFuncs.getRecords());
    }

</script> 

希望这能提供一些启示。有很多解决办法,这就是其中之一。我目前的开发模式是使用$http并对CF组件执行调用。然后我把我自己的JSON卷起来。但这就是我从简单的JS和CF开始的方式。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40406253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档