Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQueryAjax队列复选框筛选并向服务器发送请求_Javascript_Jquery_Ajax_Checkbox - Fatal编程技术网

Javascript jQueryAjax队列复选框筛选并向服务器发送请求

Javascript jQueryAjax队列复选框筛选并向服务器发送请求,javascript,jquery,ajax,checkbox,Javascript,Jquery,Ajax,Checkbox,嗨,我正在使用Laravel、jQuery和AJAX创建一个站点。我在使用AJAX发送到服务器的页面上有多个复选框过滤器,结果在网站前端进行过滤。现在我遇到的问题是,复选框中的所有内容都被更改,请求被发送到服务器;我想修改一下。相反,我希望将其放入数组或类似的队列中,以便每分钟或在最后一个请求完成时将其发送到服务器。但我不完全确定我将如何做到这一点 这是我到目前为止的代码 $('#filters input[type=checkbox]').click(function(e) {

嗨,我正在使用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

有人知道如何实现这一目标吗?我正在寻找一些基本示例。

使用setInterval并创建一个函数,该函数根据保存的列表执行ajax操作。为什么不希望立即发送请求,或者为什么希望每分钟安排一次请求?如果用户更改复选框,然后刷新页面,他们的请求将永远不会被发出。@BadHorsie,我不想让发送请求的API过载