簡體   English   中英

Select2未顯示Json的結果

[英]Select2 Not Showing the Results of Json

我正在嘗試實現遠程數據Select2。

Json Data進展良好,但是select2不顯示結果,而是僅顯示微調器圖像並表示正在加載。

這是傑森

[{"FormID":"1","FormName":"Dashboard"}]

我只希望FormName顯示在結果中,但不起作用:(

腳本

    $('#selectParentMenu').select2({
       minimumInputLength:2,
       placeholder:"Select Parent Menu",
        ajax: {
            type:"post",
            url: "{{base_url()}}admin/configurations/loadAllParentFormNames/",
            dataType: 'json',
            quietMillis: 100,
            data: function(term, page) {
                return {
                    types: ["exercise"],
                    limit: -1,
                    term: term
                };
            },
            results: function(data, page ) {
                return { results: data.FormName }
            }
        },
        formatResult: function(exercise) {
            return "<div class='select2-user-result'>" + exercise.term + "</div>";
        },
        formatSelection: function(exercise) {
            return exercise.term;
        },
        initSelection : function (element, callback) {
            var elementText = $(element).attr('data-init-text');
            callback({"term":elementText});
        }
    });

的HTML

 <div class="col-lg-8" id="haveParentDiv">
    <input class="make-switch" id="haveParent" type="checkbox" data-on-color="success" data-on-text="Yes" data-off-text="NO" data-off-color="danger">
     </div>

在此處輸入圖片說明

我認為問題出在

        results: function(data, page ) {
            return { results: data.FormName }
        }

但我不確定該如何寫數據。

當我只嘗試數據時,然后不是搜索未定義的數據,而是至少我知道它可以給出結果,而這里有些問題。

我正在關注以下示例: http : //jsfiddle.net/LUsMb/16/

我只需要對代碼做些改動,但是現在可以正常工作了。

腳本:

$('#selectParentMenu').select2({
               minimumInputLength:1,
               placeholder:"Select Parent Menu",
                ajax: {
                    type:"post",
                    url: "{{base_url()}}admin/configurations/loadAllParentFormNames/",
                    dataType: 'json',
                    quietMillis: 100,
                    data: function(term, page) {
                        return {
                            term: term, //search term
                            page_limit: 10 // page size
                        };
                    },
                    results: function(data, page ) {
                        var newData = [];
                        _.each(data, function (item) {
                            newData.push({
                                id: item.FormID  //id part present in data
                                , text: item.FormName  //string to be displayed
                            });
                        });
                        return { results: newData };
                    }

                }
            });

我刪除了一些我最不了解的舊行。 並添加了這個

results: function(data, page ) {
    var newData = [];
    _.each(data, function (item) {
        newData.push({
            id: item.FormID  //id part present in data
            , text: item.FormName  //string to be displayed
        });
    });
    return { results: newData };
}

我從這個代碼

select2:使用ajax獲取json時,“文本未定義”

好吧,有一個問題,我不得不使用underscore.js庫,如果有人可以將很少的代碼修改為普通的for循環,我會喜歡接受他的/答案。 我不想在我的代碼中添加額外的庫。

如果有人可以,請將其更改為普通for循環。

_.each(data, function (item) {
                            newData.push({
                                id: item.FormID  //id part present in data
                                , text: item.FormName  //string to be displayed
                            });

更新:

for ( var i = 0; i < data.length; i++ ) {
                            newData.push({
                                id: data[i].FormID,  //id part present in data
                                text: data[i].FormName  //string to be displayed
                            });

感謝stackoverflow社區,幫助我解決了循環。

result: function(data, page)替換result: function(data, page) processResults: function(data, page)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM