My Select2 3.4.5 ne fonctionne pas avec les données JSON.
Voici ma zone de saisie sur HTML:
<input class='form-control col-lg-5 itemSearch' type='text' placeholder='select item' />
… Et mon JavaScript
$(".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;
}
});
J'ai créé une API avec Laravel 4 qui renvoie une valeur chaque fois que je tape quelque chose sur ma zone de texte.
Voici le résultat si je tape "test" dans ma zone de texte:
[{"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}]
Je ne peux pas ajouter le résultat à ma liste déroulante Select2. Je pense formatSelection
et formatResult
causent le problème parce que je ne sais pas quel paramètre devrait être placé dessus. Je ne sais pas où trouver ces paramètres tels que le conteneur, l'objet et la requête et les valeurs qu'il devrait renvoyer, ou ma réponse JSON est-elle erronée?