【问题标题】:Fill a select options with Select2 Ajax使用 Select2 Ajax 填充选择选项
【发布时间】:2015-09-04 08:29:18
【问题描述】:

我正在使用 Select2 Ajax 对我的 html 选择应用自动完成功能

这是 select2 代码:

        <script>
            $(function(){
            $(".marques-multi").select2({
                minimumInputLength: 3,
                tags: [],
                ajax: {
                    url: "user/marques",
                    dataType: 'json',
                    type: "GET",
                    quietMillis: 50,
                    data: function (term) {
                        return term;
                    },
                      processResults: function (data) {
                        return {
                          results: data
                        };
                    },
                    transport: function (params, success, failure) {
                        var $request = $.ajax(params);

                        $request.then(success);
                        $request.fail(failure);

                        return $request;
                  }
                }
            });
        });
    </script>

这是我的html:

    <select class="form-control input-sm marques-multi" name="marque"></select>

这就是 URL : "user/marques" 与数据 (www.mywebsite.com/user/marques/marques?term=nike) 返回的内容:

[
{"id_marque":"50670","marque_name":"NIK HUBER GUITARS"},{"id_marque":"50671","marque_name":"NIKALAS CATLOW"},{"id_marque":"1","marque_name":"NIKE"},{"id_marque":"50672","marque_name":"NIKE"},
{"id_marque":"50673","marque_name":"NIKE"},{"id_marque":"50674","marque_name":"NIKE 6.0"},{"id_marque":"50675","marque_name":"NIKE ACCESSORIES"},{"id_marque":"50676","marque_name":"NIKE ACG"},{"id_marque":"50677","marque_name":"NIKE ACTION SPORTS"},{"id_marque":"50678","marque_name":"NIKE AIR MAX"},{"id_marque":"50679","marque_name":"NIKE BAIN"}
]

当我在选择输入中编写示例 nik 时,我在控制台中看到请求返回此 json 且没有错误,但选择未填充此数据,它保持空白。

【问题讨论】:

    标签: javascript ajax json jquery-select2


    【解决方案1】:

    如果可能,请将 JSON 上的数据属性从 id_marquemarque_name 更改为 idtext

    所以来自:

    [
    {"id_marque":"50670","marque_name":"NIK HUBER GUITARS"},{"id_marque":"50671","marque_name":"NIKALAS CATLOW"},{"id_marque":"1","marque_name":"NIKE"},{"id_marque":"50672","marque_name":"NIKE"},
    {"id_marque":"50673","marque_name":"NIKE"},{"id_marque":"50674","marque_name":"NIKE 6.0"},{"id_marque":"50675","marque_name":"NIKE ACCESSORIES"},{"id_marque":"50676","marque_name":"NIKE ACG"},{"id_marque":"50677","marque_name":"NIKE ACTION SPORTS"},{"id_marque":"50678","marque_name":"NIKE AIR MAX"},{"id_marque":"50679","marque_name":"NIKE BAIN"}
    ]
    

    收件人:

    [{"id":"50670","text":"NIK HUBER GUITARS"},{"id":"50671","text":"NIKALAS CATLOW"},{"id":"1","text":"NIKE"},{"id":"50672","text":"NIKE"},
        {"id":"50673","text":"NIKE"},{"id":"50674","text":"NIKE 6.0"},{"id":"50675","text":"NIKE ACCESSORIES"},{"id":"50676","text":"NIKE ACG"},{"id":"50677","text":"NIKE ACTION SPORTS"},{"id":"50678","text":"NIKE AIR MAX"},{"id":"50679","text":"NIKE BAIN"}];
    

    Fiddle

    【讨论】:

    • doesn"t work 保持相同的错误.. 但我做了一个 jquery ui 自动完成......谢谢。
    • @ADiL 你看到了什么错误?但如果你已经成功了,就不用回答我了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 2017-05-13
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多