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