I'm having problems displaying results in Select2 using AJAX. Here is my code:
$(document).ready(function() { $("#producto").select2({ placeholder: 'Select a product', formatResult: productFormatResult, formatSelection: productFormatSelection, dropdownClass: 'bigdrop', escapeMarkup: function(m) { return m; }, minimumInputLength:3, ajax: { url: 'http://foo.foo/listar.json', dataType: 'jsonp', data: function(term, page) { return { q: term }; }, results: function(data, page) { return {results:data}; } } }); function productFormatResult(product) { var html = "<table class='product-resultado'><tr>"; if(product.img != undefined) { html += "<td class='product-image'><img src='"+product.img+"'/></td>"; } html += "<td class='product-info'>"; html += product.text + "<br />"; html += product.precio_costo + " CRC <br />"; html += "Existencias: " + product.existencias; html += "</td></tr></table>"; return html; } function productFormatSelection(product) { return product.text; }
Using the Javascript Console, I see that the request returns the expected JSON: 
[
{"text": "Foo Product", "img": "#", "precio_costo": 45, "existencias": 0, "id": 2}
]
I believe that the results: function(data, page) { ... } not called, since I put a warning there and nothing happened.
It just hangs there, waiting for the results: 
blaze
source share