2016-11-03 9 views
1

내 cfm 페이지에서 cffunction으로 전화 할 수 있는지 궁금합니다. onClick 버튼이있어 동일한 페이지에있는 cffunction에 전화해야합니다.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? 

지금까지 나는이 있습니다 :

function getRecs(){ 
    try{ 
     location.href = 'myCFMpage.cfm?method=getRecords'; 
    }catch(err){ 
     alert('Error') 
    } 
} 

: 여기

<cffunction name="getRecords" access="remote"> 
    <script> 
     alert('test'); 
    </script> 
</cffunction> 

내 JS 기능입니다 나는이 오류가 발생했다 또한 내 기능의 주위에 cfcomponent를 넣어 시도했지만 한 심지어 가능하다면 내 현재 코드가 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> 

, 당신은 당신의 자바 스크립트에서 우리를 위해 구성 요소를 선언 cfajaxproxy을 사용합니다.

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

그런 다음 같은 템플릿에, 당신의 자바 스크립트에서 다음을 수행 할 것입니다 그리고 당신은 jsClass의 방법으로 CFC 기능을 사용할 수 있습니다.

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

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

</script> 

바라건대, 이것은 약간의 통찰력을 제공합니다. 거기에는 많은 해결책이 있습니다. 나의 현재 개발 패턴은 CF 컴포넌트에 Angular와 do $ http 호출을 사용하는 것이다. 그리고 cffunctions에서 JSON을 사용합니다. 그러나 이것이 내가 일반 JS 및 CF로 시작한 방법입니다.

+1

내 투표로 100 명이 넘는 평판을 받았습니다. 당신은 나에게 맥주를 빚지고 있습니다. –

+0

고용주가 저를 사무실에서 내버려 둘 수있게한다면, 당신은 그것을 얻었습니다! – snackboy