2010-12-01 2 views
0

私は1つのフォームデータ使用AJAXを使用する方法を知っている:ajaxを正しく入力するには?

$.ajax({ 
     type:'get', 
     url:'blabla.php', 
     data:$('#abc').serialize(); 
     ......... 

が、私はと入力したい場合はどのように:

$('#exportmod').click(function(){ 
        $.ajax({ 
          "dataType":'json', 
          "type":'GET', 
          "url":'shows_merchan.php', 
          "data": [ action:"searchmodelqp", 
             jhead:"aaData", 
             month:$("#search_month").val(), 
             year:$("#search_year").val(), 
             export:"excel" 
            ], 
          "success":function(json){ 
                 fnCallback(json); 
                 } 
          }); 
        }); 

をあなたが私にこのAJAXの正しい種類を示すことができましたか?

+0

権利について調べ、それがerroringされますか? – benhowdle89

答えて

1

あなたは、ほぼちょうどに控え、それを持ってあなたのdata間違っている、それはこのようなオブジェクトのための{}いうより[]、次のようになります。

$('#exportmod').click(function(){ 
    $.ajax({ 
    dataType: 'json', 
    type: 'GET', 
    url: 'shows_merchan.php', 
    data: { action: "searchmodelqp", 
      jhead: "aaData", 
      month: $("#search_month").val(), 
      year: $("#search_year").val(), 
      export: "excel" 
      }, 
    success: fnCallback 
    }); 
}); 

あなたがを何ができるかを示して上記の他の変更。有効な...とすべての$.ajax()オプションがある限り、予約されていない単語の識別子を引用符で囲む必要はありません。また、同じ署名の関数を呼び出すための匿名ラップは必要ありませんsuccessにコールバックを直接使用するように変更しました。上記$.ajax()コール、$.getJSON()のショートカットもあります

$('#exportmod').click(function(){ 
    $.getJSON('shows_merchan.php', 
      { action: "searchmodelqp", 
       jhead: "aaData", 
       month: $("#search_month").val(), 
       year: $("#search_year").val(), 
       export: "excel" }, 
      fnCallback); 
}); 
+0

何が違うのですか? – klox

+0

@klox - 'data'を参照してください。 '[]'はオブジェクトのリテラルではなく、配列のリテラルを書きます。したがって、有効な書式設定ではありません。ここにオブジェクトがあり、最終的に '$ .param()'に渡されてクエリー文字列としてシリアライズされます。 –

関連する問題