¿Dónde está el error?
Mi cuadro select2 no muestra los resultados recibidos de la llamada ajax , dice: no se pudieron cargar los resultados.
Aquí está mi código:
HTML:
<select class="airportList form-control" name="From_1"> <option disabled selected>Going from</option> </select>JS:
$(function() { $(".airportList").select2({ minimumInputLength: 1, // data: [{id:'ADL',text:'Adelaide, Australia, ADL'},{id:'MEL',text:'Melbourne, Australia, MEL'}], ajax: { type: "GET", url: "data.php", dataType: 'json', delay: 250, data: function (params) { return { q: params.term, // search term page: params.page }; }, processResults: function (data) { return { results: data }; } } }); });data.php (que recibo):
[ {id:'ADL',text:'Adelaide, Australia, ADL'}, {id:'MEL',text:'Melbourne, Australia, MEL'} ]Lo siento, aquí hay una respuesta actualizada:
processResults: function(data) { return { results: $.map(data, function(obj) { return { id: obj.id, text: obj.text }; }) }; }Creo que esta parte es donde tienes el problema. Vea este ejemplo: http://jsfiddle.net/jes0wrka/
¡Entonces el problema en mi caso fue que el formato del JSON del archivo data.php era INCORRECTO!
[ {id:'ADL',text:'Adelaide, Australia, ADL'}, {id:'MEL',text:'Melbourne, Australia, MEL'} ]El JSON CORRECTO debe ser:
[ {"id":"ADL","text":"Adelaide, Australia, ADL"}, {"id":"MEL","text":"Melbourne, Australia, MEL"} ]