0

我正在尝试将选中的复选框放入数组(checkBoxArray)中,并使用 Select2 jQuery 插件通过 ajax 将其发送到我的 php 请求文件。但过滤器值始终为空。

//Here the checkBox array
$('.chkfilters').on("change", function() {
    var checkBoxArray = $('.chkfilters:checked').map(function(i,n) {
        return $(n).val();
    }).get(); //get converts it to an array
});

// Here the Select2 plugin
$(".searchInput").select2({
    placeholder: "Rechercher un article, une référence...",
    minimumInputLength: 3,
    ajax: {
        url: "/suggest",
        dataType: 'JSONP',
        type: 'GET',
        data: function (term, page, checkBoxArray) {
            return {
                q: term,
                page_limit: 10,
                page: page,
                filter : checkBoxArray
            };
        },
        results: function (data, page) {
            var more = (page * 10) < data.total;
            return {
                results: data.articles,
                more: more
            };
        }
    },
    createSearchChoice: function(term, checkBoxArray) {
        return {
                text:term,
                tform:'/recherche',
                filter : checkBoxArray
         };
    },

    ...

});
4

1 回答 1

0

我的项目中的代码。有用:

$('.lstProgramStoplistId').select2({
  ajax: {
    url: programsUrl,
    dataType: 'json',
    contentType: 'application/json',
    type: 'POST',
    delay: 250,
    data: function (params) {
      var lstProgramCategoryId = $('.lstProgramCategoryId').select2('val');

      return JSON.stringify({
        str: params.term,
        lstProgramCategoryId: lstProgramCategoryId
      });
    },
    processResults: function (data, params) {
      return {
        results: data.items
      };
    },
    cache: false
  },
  minimumInputLength: 2
});
于 2016-12-09T10:54:31.817 回答