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

标签 javascript coldfusion cffunction

我想知道我是否可以在我的 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 的方式。

关于javascript - 如何从 javascript 调用 cfm 页面上的 cffunction?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40406253/

相关文章:

javascript - 如何在 Angular 6 构建期间有条件地导入不同的文件?

coldfusion - 在Coldfusion中创建Word文档-如何进行页码编号?

coldfusion - 如何检查是否收到或定义了参数?

javascript - 复选框标签的总和值

javascript - 重新排序时,将折叠的行与数据表中的父行一起移动

javascript - Protractor 持久变量

forms - CFML注册表单烦恼——encodeForHTMLAttribute的正确使用?

mysql - 如何在事务回滚中恢复自动ID

jquery - 使用 AJAX 从 ColdFusion 组件页面获取数据,并用结果填充另一个下拉列表

javascript - 如何从 coldfusion cfc 页面获取返回变量?