2016-11-03 31 views
1

私のcfmページでcffunctionと呼ぶことができるのだろうかと思っていましたか?私はonClickボタンを持っていて、同じページにあるcffunctionの電話をかけるべきです。また、私は私の機能を中心にcfcomponentを置くことを試みたが、私はこのエラーを取得しました。javascriptからcfmページでcffunctionを呼び出す方法は?

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があり、ユーザーがボタンをクリックして操作をしたときにそのクエリからデータを取得したいので、これをやろうとしている理由。これが可能かどうか誰にでも教えてもらえれば、この問題に近づく良い方法があれば教えてください。

+0

ここに参考資料があります。 https://www.google.ca/#q=cold+fusion+component –

答えて

5

以前はcfajaxproxyを使用して、コンポーネント(cfc)からjavascriptへの関数の呼び出しを実現しました。 (これはもう別の開発パラダイムのためにこれをやっていませんが、これはあなたを得るために役立つかもしれません)。まず、関数でcfcを作成します。テンプレート、.CFMファイルで

<cfcomponent> 
    <cffunction name="getRecords" access="remote" returntype="string"> 
     <cfquery name="someQuery" datasource="someDataSource"> 
      select * from records 
     </cfquery> 
     <cfreturn serializeJSON(someQuery,'struct')> 
    </cffunction> 
</cfcomponent> 

、あなたはJavaScriptで私たちのためにコンポーネントを宣言するcfajaxproxyを使用します。

<cfajaxproxy cfc="yourComponent" jsclassname="jsClass"> 

その後、同じテンプレートで、あなたのJavaScriptで次の操作を行うと、あなたはjsClassからメソッドとしてCFC関数を使用することができます。

<script type="text/javascript"> 
    var _myFuncs = new jsClass() 

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

</script> 

これは、いくつかの洞察を提供します。そこには多くの解決策がありますが、これは一つです。私の現在の開発パターンは、CFコンポーネントに対してAngularとdo $ httpの呼び出しを使用することです。そして私は自分自身のJSONをcffunctionsでロールバックします。しかし、これは私がちょうど平らなJSとCFで始まったのです。

+1

私の投票はあなたの評判を100以上にしました。あなたは私にビールを借りています。 –

+0

私の雇用主が私をオフィスから離れることができるなら、それを手に入れました! – snackboy

関連する問題