您好我正在使用Laravel创建一个网站,jQuery& AJAX。我在页面上有多个复选框过滤器,使用AJAX发送到服务器,结果在网站的前端进行过滤。现在我遇到的问题是复选框的所有内容都被更改,请求被发送到服务器;我想修改。我想把它排成一个数组或类似的东西,这样我就可以每分钟或者最后一个请求完成时将它发送到服务器。但我不完全确定我会怎么做。
这是我到目前为止的代码;
$('#filters input[type=checkbox]').click(function(e) {
console.info('Thank you for selecting "' + $(this).attr('value') + '"');
filters.update('/index/filter',$('#filters :input').serialize(), '&offset=0', true);
});
典型的过滤器如下所示;
<input type="checkbox" id="tag_982" name="region[]" class="essex checkbox form-filters" value="Essex" data-name="Essex">
并按如下方式发送请求;
var filters = {
update: function(url, data, offset, reset) {
var count = '&count=40';
if (typeof offset === 'undefined') {
data = data + count;
} else {
data = data + count + offset;
}
$('.loading-icon').fadeIn();
$('#adverts').addClass('loading');
$.ajax({
url: url,
async: true,
dataType: 'json',
data: data,
type: 'POST',
success: function(json) {
console.log('Adverts successfully loaded');
$('.loading-icon').fadeOut();
$('.append-data').html(json.data.viewData);
$('#adverts').removeClass('loading');
$('.info-num').html(json.data.offset + ' of ' + json.data.total + ' adverts');
if (json.data.offset >= json.data.total) {
$('#load-more').children('a').text('All adverts loaded').contents().unwrap();
} else {
$('#load-more').children('a').text('Show more adverts');
$('#load-more').children('a').attr('href', json.data.offset);
}
} // end success
}).done(function() {
}); //end ajax
}, //end update function
} //end var filters
有没有人有任何想法如何实现这一目标?我正在寻找一些基本的例子。