2010-12-01 2 views
0

я знаю, как использовать один вид использования данных 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() ', который будет сериализован как ваш запрос. –

Смежные вопросы