[英]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 };
}
我從這個代碼
好吧,有一個問題,我不得不使用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.