Tengo select2 configurado y trabajando usando una variable JS para cargar los datos, sin embargo, debido a que mis datos tienen muchas opciones (países), me gustaría cargarlos desde un en lugar de tener eso en mi JS.
He creado un archivo countries.json con todos los países y estoy usando el siguiente código para intentar incorporarlos. Sin embargo, aparece el error The results could not be loaded
.
Código:
$('#allowedCountries').select2({
placeholder: 'Select allowed countries',
selectOnClose: false,
tags: false,
tokenSeparators: [',', ' '],
ajax: {
dataType : "json",
url : "includes/countries.json",
processResults: function (data) {
return {
results: $.map(data, function(obj) {
return { id: obj.ime, text: obj.ime };
})
};
}
},
});
paises.json
[{id:1, text: 'Afghanistan'},
{id:2, text: 'Aland Islands'},
{id:3, text: 'Albania'},
...
{id:245, text: 'Yemen'},
{id:246, text: 'Zambia'},
{id:247, text: 'Zimbabwe'}]
Encontré la solución con la ayuda de @Camille.
Reprocesamiento innecesario del archivo json (solo necesario si su archivo json usa identificadores diferentes a "id"
y"text"
El archivo json tenía un formato incorrecto, consulte https://select2.org/data-sources/formats
Código:
// Create countries dropdown
$('#allowedCountries').select2({
placeholder: 'Select allowed countries',
selectOnClose: false,
tags: false,
tokenSeparators: [',', ' '],
ajax: {
dataType : "json",
url : "includes/countries.json",
},
});
paises.json
{
"results": [
{
"id": 1,
"text": "Afghanistan"
},
{
"id": 2,
"text": "Aland Islands"
},
{
"id": 3,
"text": "Albania"
},
...
{
"id": 245,
"text": "Yemen"
},
{
"id": 246,
"text": "Zambia"
},
{
"id": 247,
"text": "Zimbabwe"
}
]
}
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras