どのように私はAJAXを通じてCFCに引数を渡すのですか?
-
24-09-2019 - |
質問
私はCFC関数を呼び出すには、以下のスクリップを使用しています:
function loadQuery() {
$.get('QueryData.cfc',{},function(GetMyData){
$("#content").html(GetMyData)
})
return false
}
$(document).ready(function() {
$("#loadLink").click(loadQuery)
});
これは私のHTMLです:
<a href="" id="loadLink">Load It</a>
<div id="content"></div>
私は、次のCFCを呼び出しています:
<cffunction name="GetMyData" access="public" returntype="query">
<cfargument name="RecordID" type="string" required="yes">
<cfset var RecordData = "">
<cfquery name="RecordData" datasource="MyDSN">
SELECT
foo.RecordID,
foo.RecordName
FROM
foo
WHERE
foo.RecordID = #ARGUMENTS.RecordID# ;
</cfquery>
<cfreturn RecordData>
私はCFCページショー、CFCを呼び出したときに問題の一つがあります。 CFCの記述は、(管理者パスを求めた後)アップします。私はQueryData.cfcをロードする必要はありません。私はQueryData.cfc内の関数を実行します。
第二の問題は、私はCFCメソッドに引数を渡すための構文を理解することはできませんです。
解決
あなたは$に.getメソッドと似た何かを行うことができますが、私は通常、このような何かを実行します。
$(document).ready(function() {
$("#loadLink").click(function(e) {
e.preventDefault();
var recordata = $(this).attr("href").substring(1); //trim '?' char
$.ajax({
type: "GET",
url: "QueryData.cfc?method=GetMyData",
data: recordata,
dataType: "html",
success: function(message) {
$("#content").html(message);
}
});
});
});
レコードIDのデータはそうのようなDOMのどこかに保存されている。
<a href="?RecordID=#url.RecordID#" id="loadLink">Load Data</a>
<div id="content"></div>
それは仕事、まだ可能性があります - - また、必ずそれはどのようにアクセス=「公共」と振る舞いではないが、それはおそらくアクセス=「リモート」あなたの関数にする必要があります。
。他のヒント
あなたがやっていることについて、あなたは<cfdiv>
や<cfajaxproxy>
を試してみたいですか?それははるかに簡単です。
しかし、あなたの質問に答えるために、GETのURLのあるべきXXX.cfc?method=whatever¶m=xyz
編集:ところで、あなたの関数がaccess="remote"
を持っている必要があり、それはあなたが<cfgrid>
を使用している場合を除き、クエリオブジェクトを返すためには良い考えではありません。
所属していません StackOverflow