我在我的 rails 3.1 应用程序中使用数据表。数据表设置为工作服务器端。我正在使用 ajax 请求从服务器获取数据,然后将其显示在表格中。
我使用 meta_search 作为过滤器从数据库中获取数据。
这是我认为的代码:
= simple_form_for @search, :url => offer_coupons_path(@offer), :html => {:method => :get} do |f|
= f.select :redeemed_equals, [['All Coupons', '']] + [["Redeemed", true], ["Not Redeemed", false]]
这是控制器中的方法:
def offer_coupons_list
search_params = params[:search] || {"meta_sort"=>"user_full_name.asc"}
@search = Coupon.search(search_params)
@coupons = @search.includes(:user).includes(:order => :gift).page(@page)
render :partial => 'coupons/offer_coupons_list'
end
这是负责向服务器发送ajax请求的javascript:
$("#search_redeemed_equals").change(function(e){
table = $("#grid").dataTable();
var data = $("#search_redeemed_equals").parents("form:first").serialize();
$.ajax({
'url': 'coupons/offer_coupons_list',
'data': data,
'type': 'POST'
});
table.fnDraw();
e.preventDefault();
});
问题是脚本向服务器发送了两个 ajax 请求。第一个请求是正确的并返回过滤后的数据。当调用 fnDraw() 并返回未过滤的数据时,将发送另一个请求。所以表中的数据没有变化。每次调用任何数据表函数时都会发送请求。我该如何解决这个问题?