2012-03-21 4 views
1

POST応答でjQuery ajaxを使用してデータを取得しようとしていますが、データを表示できないようです。ここで私が使用しているコードです。coldfusionとjqueryを使用したajax応答の表示

$(document).ready(function(){ 
    $('#contentdiv').html(' '); 
    $("#idm").change(function(){ 
     var formval = {idm:$(this).val()}; 
     $.ajax({ 
      type: "POST", 
      url: "request_processor.cfm", 
      dataType: "json", 
      data: formval, 
      success: function(response){ 
      $('#contentdiv').fadeIn(2000).append(response.DESCRIPTION);} 
     }); 
    }); 
}); 

ここはJSFCですが、私はCFCから戻ってきています。ここで

{"DESCRIPTION":"Global Alpha I Benchmark"} 

コードは、問題は何

<cfset oData = CreateObject("component","menudata")> 
<cfset oData.setDataSource(dsn)> 
<cfset theData = oData.getMenuData(FORM.idm)> 
<cfset oJSON = createObject("component","cfjson")> 
<cfset theResults = oJSON.encode(theData)> 
<cfoutput>#theResults#</cfoutput> 

request_response.cfmにありますか?

おかげ

+0

テンプレートから返されるデータの種類(FYI:URLが間違っていない限り、CFCではありません)。 –

+1

"データを表示できないようです"とはどういう意味ですか?何が起こりますか?成功のコールバックで 'console.log(response.DESCRIPTION)'を実行した場合はどうなりますか? –

+0

CFから戻ってくるJSONが正しいとすれば、これはJSの問題のようです。 Firebugコンソールにエラーが表示されていますか? –

答えて

0

あなたは放火犯でネットワークツールまたはChromeデベロッパーツールであなたのAjaxリクエストから取得応答を見てみましょう。 JSONだけを取得していることを確認してください。

JSONの前後でジャンクバックする場合、cfsettingを使用して出力を制限して、cfoutputタグ間の内容以外の出力を防止する必要があります。

cfmページを呼び出すのではなく、関数のreturnformat属性やColdFusionに組み込まれているJSON関数を使用するのではなく、実際にCFCのメソッドを呼び出すようにしてください。

#contentdiv要素が有効なHTMLであることも確認してください。あなたは、応答が戻ってきたら、ページのソースを見ましたか? "contentdiv"というIDを与えたDOM要素に実際に何かが現れていますか?もしそうなら、あなたはCSS/javascriptの問題があります。

CSSで表示可能にし、fade()を使わずに追加呼び出しを行うだけです。あなたは "contentdiv"があなたのページに実際に見えるようにする必要があります。ページに説明が表示されたら、fade()を再導入してください。しかし、フェードは、前にではなく、後に連鎖する必要があります。

これはちょうど101のデバッグです。直接的な答えではありませんが、うまくいけばあなた自身の答えを見つけることができます。

関連する問題