1

データベースにクエリを実行する cfc ファイルにリクエストを送信しています。これらの結果を構造体、配列、またはその他の方法で保存しますか? 結果を保存して返す方法に応じて、jQuery からの断片をどのように処理すればよいでしょうか?
結果を配列に保存して、そのように結果の1つだけを表示しようとしましたが、うまくいきませんでした:

$.ajax({
    type: "POST",
    url: "/ajax/ajax_test.cfc?method=ajaxTest",
    data:"field1=17",
    success: function(response) {
    var r=response;
    $(".cat_vid_subContainer").empty();
    $(".cat_vid_subContainer").html(r.DATA[2]);
    }
    });
4

1 に答える 1

10

CFC がデータを JSON として返すようにし、JSON を期待するように ajax リクエストを変更します。

CF8+を想定

メソッドが JSON を返すようにするには、新しいクエリ文字列の名前と値のペア "returnformat=json" を追加するだけです。

ajax で json を受信できるようにするには、「dataType: 'json'」を ajax 関数に追加するだけです。

$.ajax({
  type: "POST",
  dataType: 'json',
  url: "/ajax/ajax_test.cfc?method=ajaxTest&returnformat=json",
  data:"field1=17",
  success: function(response) {
    var r=response;
    $(".cat_vid_subContainer").empty();
    $(".cat_vid_subContainer").html(r.DATA[2]);
   }
});

CFC が配列を返す場合、jQuery は JSON 配列を JavaScript 配列に逆シリアル化し、現在行っているようにその要素にアクセスできます。

CFC が JSON のみを返すことが重要であることに注意してください。デバッグ情報を返す場合、または JSON の前に大量の空白がある場合、jQuery はそれを逆シリアル化できません。Firebug または他の同様のツールを使用して、返された JSON の品質を検証します。または、ブラウザで URL を要求してソースを表示するだけです。

于 2011-01-27T22:42:19.963 に答える