2016-09-23 82 views
1

我有打電話給.cfc頁面的功能。我傳遞方法和參數以及頁面名稱。這裏是我的代碼:如何從coldfusion cfc頁面獲取返回變量?

function callFunction(name){ 
    param = name; 

    location.href = 'myTest.cfc?method=getRecords&userName=' + param; 
} 

這是我的CFC頁cffunction:

<cfcomponent> 
    <cffunction name="getRecords" access="remote" returnformat="void"> 
     <cfargument name="userName" type="string" required="yes"> 

     <cfset myResult = "1"> 

     <cftry> 
      <cfquery name="getResults" datasource="test"> 
       //myQuery 
      </cfquery> 

      <cfcatch> 
       <cfoutput>#cfcatch#</cfoutput> 
       <cfset myResult="0"> 
      </cfcatch> 
     </cftry> 
     <cfreturn myResult> 
    </cffunction> 
</cfcomponent> 

我的代碼不給我返回變量我做我的函數的調用之後。我不確定我的代碼中缺少什麼。如果有人可以幫助解決這個問題,請告訴我。

+0

你有'returnFormat =「void」'。 void爲returnType。 'returnFormat'應該是'json','wddx'或'plain'。 – Leeish

+0

是的,我需要結果,但在這種情況下我不能使用Ajax。在這種情況下是否有其他方式來處理響應? –

+0

你是什麼意思,你不能使用阿賈克斯。顯然你可以控制javascript。目前還不清楚你試圖用'getRecords'中的數據做什麼。你是否試圖將用戶發送到一個頁面?在頁面上顯示記錄?根據用戶名稱將用戶發送到頁面?在提供的代碼中,你的函數不會調用cfc頁面。 – Leeish

回答

3

不知道我已經理解了這個問題,但你在找這個...?

function callFunction(name) { 
    var target = 'myTest.cfc?method=getRecords&userName=' + name; 

    location.href = target; 

    return target; 
} 
+0

我試過了你的代碼,在調用之後仍然沒有獲得目標值。 –

+0

什麼叫。呼叫發生在哪裏espresso?你可以在你「調用」函數的地方發佈你的代碼嗎? – Leeish

+0

@Leeish我沒有使用ajax來調用我的函數,但在上面的函數中我有location.href和指向我的函數和傳遞參數的方法。那麼在這種情況下,是否可以從函數結果得到響應呢?我無法使用Ajax,因爲我在同一頁面上具有電子表格的功能,並且不會與ajax一起使用。謝謝。 –

2

這是你將如何從myTest.cfc成分提取的getRecords結果。

var xhr = new XMLHttpRequest(); 
xhr.open('GET', 'myTest.cfc?method=getRecords&userName='+name); 
xhr.send(null); 

xhr.onreadystatechange = function() { 
    var DONE = 4; // readyState 4 means the request is done. 
    var OK = 200; // status 200 is a successful return. 
    if (xhr.readyState === DONE) { 
    if (xhr.status === OK) 
     var result = xhr.responseText; // 'This is the returned text.' 
     //result will = 1 or 0. 
    } else { 
     console.log('Error: ' + xhr.status); // An error occurred during the request. 
    } 
    } 
}; 
+1

沒有辦法從你的cfc中獲取數據到你的javascript而不使用異步調用。像在你的例子中那樣給一個變量分配一個URL不會。所以你要麼不理解AJAX是什麼和用於什麼,不能顯示你的所有代碼,或者不傳達你想要做的事情。 – Leeish