2016-09-23 15 views
1

私は.cfc pagを呼び出す関数を持っています。メソッドとパラメータをページ名とともに渡しています。ここに私のコードは次のとおりです。ここで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

あなたはajaxを使用できないということを意味しますか?あなたは明らかにjavascriptを制御することができます。 'getRecords'からのデータで何をしようとしているのかは不明です。ユーザーをページに送信しようとしていますか?ページにレコードを表示しますか?ユーザ名に基づいてページにユーザを送りますか?提供されたコードでは、関数はcfcページを呼び出しません。 – Leeish

答えて

3

質問が分かりませんが、これを探していますか?

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

    location.href = target; 

    return target; 
} 
+0

私はあなたのコードを試しても、呼び出しの後でも目標値を得られませんでした。 –

+0

何と呼びますか。エスプレッソはどこで起きているのですか?あなたは関数を "呼び出す"ところにコードを投稿できますか? – 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

関連する問題