-
select2 处理返回结果
select2方法 -> ajax对象 -> processResults方法对象 -> data和page参数
-
新版select2 ajax对象的data对象方法由原来的两个参数变成一个参数params
#像这样
data : function (params) { // 请求参数(GET)
params.merchant_name = params.term;
return params;
},
- 下拉框选择所有商家
//select2-2.4
$('.slt_merchant_id').select2(
{
width: 'resolve',
ajax : {
url : "api.php?s=api/merchant/get_all_merchant&page_size=100",
dataType : "json",
data : function (params) { // 请求参数(GET)
params.merchant_name = params.term;
return params;
},
processResults: function (data, page) {
var res = [];
res.push({id:0,text:'全部商家'});
if (data.success) {
$.each(data.list,function(i,v){
res.push({id:v.id,text:v.merchant_name});
})
}
return {results:res}
}, // 构造返回结果,返回格式为{id:1,text:'列表项'}
},
}
);
- 自动分页
var pageCount = 0;
if (typeof data['pagination'] != 'undefined') {
if (typeof data['pagination']['page_count'] != 'undefined') {
pageCount = data['pagination']['page_count'];
}
}
var more = page < pageCount;
// 构造返回结果,返回格式为{id:1,text:'列表项'}
return {results:res,more:more}
-
select2 2.4 分页更新
ajax对象-> processResults对象 -> return 对象(results为结果,pagination['more']=true时加载下一页) 示例: $('#rebate_courier_id').select2( { width: 'resolve', ajax : { url : "api.php?s=api/courier/get_courier_list&page_size=100", dataType : "json", data : function (params) { // 请求参数(GET) params.keyword = params.term; return params; }, processResults: function (data, params) { var res = []; //res.push({id:0,text:'全部业务员'}); if (data.success) { $.each(data.list,function(i,v){ res.push({id:v.id,text:v.courier_name+"("+v.mobile+")"}); }) } params.page = params.page || 1; more = data.pagination.is_end || true; return {results:res,pagination:{more:more}} }, // 构造返回结果,返回格式为{id:1,text:'列表项'} }, } );