如何设置select2(Ajax)的默认值

时间:2018-02-25 20:54:58

标签: ajax jquery-select2

如何定义select2默认的AJAX值?

我尝试过很多但仍然无法正常工作。

以下是我的代码:

$("#qrcode_group_rowid").select2({
    ajax: {
        url: "app/qrcode/qrcode_group_select_service.php",
        dataType: 'json',
        delay: 250,
        data: function (params) {
            return {
                q: params.term, // search term
                page: params.page
            };
        },
        processResults: function (data, params) {
            params.page = params.page || 1;

            return {
                results: data.items,
                pagination: {
                    more: (params.page * 50) < data.total_count
                }
            };
        },
        cache: true
    },
    placeholder: 'Please select',
    escapeMarkup: function (markup) { return markup; },
    minimumInputLength: 0,
    templateResult: formatRepo,
    templateSelection: formatRepoSelection
});
function formatRepo (json) {
    if (json.loading) {
        return json.text;
    }
    var markup = json.group_name;
    return markup;
}
function formatRepoSelection (json) {
    return json.group_name;
}

和我的JSON数据:

{
"total_count": 897,
"items": [{"id": 901,"group_name": "TEST25-117"},{"id": 1,"group_name": "TEM117"}]
}

我做错了什么,如何解决?

1 个答案:

答案 0 :(得分:0)

您应该使用PHP方法发送以下信息(使用雄辩的IP地址可能会有限制)

/** @var Collection $btsNodes */
    $btsNodes = BtsNode::where('node_code' , 'like' , '%'.$request->get('q').'%')
                ->get(['node_code']);
         //       ->toArray();
    $items = $btsNodes->map(function ($item){
        return [
            'id' => $item['node_code'],
            'node_code' => $item['node_code']
        ];
    });

    return ['items' => $items];