Select2 3.4.5 của tôi không hoạt động với dữ liệu JSON.
Đây là hộp nhập liệu của tôi trên HTML:
<input class='form-control col-lg-5 itemSearch' type='text' placeholder='select item' />
… Và JavaScript của tôi
$(".itemSearch").select2({
placeholder: "Search for an Item",
minimumInputLength: 2,
ajax: {
url: "/api/productSearch",
dataType: 'json',
quietMillis: 100,
data: function (term, page) {
return {
option: term
};
},
results: function (data, page) {
var more = (page * 10) < data.total;
return {
results: data.itemName,
more: more
};
}
},
formatResult: function (data, term) {
return data;
},
formatSelection: function (data) {
return data;
},
dropdownCssClass: "bigdrop",
escapeMarkup: function (m) {
return m;
}
});
Tôi đã tạo một API với Laravel 4 trả về một giá trị bất cứ khi nào tôi nhập bất kỳ thứ gì vào hộp văn bản của mình.
Đây là kết quả nếu tôi nhập "test" vào hộp văn bản của mình:
[{"itemName":"Test item no. 1","id":5},
{"itemName":"Test item no. 2","id":6},
{"itemName":"Test item no. 3","id":7},
{"itemName":"Test item no. 4","id":8},
{"itemName":"Test item no. 5","id":9},
{"itemName":"Test item no. 6","id":10},
{"itemName":"Test item no. 7","id":11}]
Tôi không thể thêm kết quả vào menu thả xuống Select2 của mình. Tôi nghĩ formatSelection
và formatResult
đang gây ra sự cố vì tôi không biết nên đặt tham số nào vào nó. Tôi không biết nơi lấy các tham số đó như vùng chứa, đối tượng và truy vấn và các giá trị mà nó phải trả về, hay phản hồi JSON của tôi bị sai?