将数组作为参数传递给Select2

时间:2013-06-25 15:09:16

标签: php jquery jquery-select2

我正在尝试将复选框选中数组(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
         };
    },

    ...

});

1 个答案:

答案 0 :(得分: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
});