Select2 ajax异步搜索数据

直接上代码

$(".aui-ajax-select").select2({
    ajax: {
        url: "/ajax_topics",
        method : "post",
        dataType: 'json',
        delay: 250,
        data: function (params) {
            return {
                id: "{{ $id }}", // search term
                title: params.term, // search term
                page: params.page,
                _token : '{{ csrf_token() }}'
            };
        },
        processResults: function (_data, params) {
            var data = _data.data;
            for (var i = 0; i < data.length; i++) {
                data[i].id = data[i].id;        //赋值id
                data[i].text = data[i].title;   //赋值标题
            }
            return {
                results: data
            };
        },
        cache: true
    },
    placeholder: "请输入名称搜索",
    escapeMarkup: function (markup) { return markup; }, // 让template的html显示效果,否则输出代码
    minimumInputLength: 2,
    templateResult: formatSubject, // 自定义下拉选项的样式模板
    templateSelection: formatSubjectSelection // 自定义选中选项的样式模板
});

function formatSubject(item) {
    if (item.loading) return item;
    var markup =  '<div>';
        markup += ' <p class="text-black">' + item.text + '</p>'; //显示文本名
        markup += '</div>';
    return markup;
}

//反回选中的值
function formatSubjectSelection(item) {
    return item.text || item.id;
}

 

php代码,具体业务自行查询。

/**
 * 搜索话题
 * @param Request $request
 * @return array
 * 话题,首次查询15条, 中山、瑞金抢头条,VR+医疗正在高速前进中?
 */
public function ajax_topics(Request $request) {
    if (!intval($request->id) && empty($request->title)) return response()->json(['info'=>'请输入用户名与密码!', 'code'=>201]);
    $topics_arr = Topic::SelectTopics(1, $request->id, $request->title);
    if (empty($topics_arr)) return response()->json(['info'=>'未查到数据!', 'code'=>201]);
    return response()->json(['info'=>'ok', 'data' => $topics_arr, 'code'=>200]);
}

完成。

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值