jquery - disable - select2 selected
Select2 y initSelection callback (2)
¡Finalmente lo resolvió! Supuse select2
no querían una matriz, ya que es un solo valor, por lo que he seleccionado el primer elemento de la matriz data.results.
callback(data.results[0]);
Y si ha configurado multiple: true, simplemente acepte la matriz de resultados completa;
callback(data.results);
En la carga de la página, estoy tratando de usar initSelection para seleccionar ID 60 (valor especificado del campo de entrada) . Parece que no puedo hacerlo funcionar correctamente.
Los scripts PHP funcionan muy bien y devuelven los valores correctos, pero ¿cómo puedo hacer que JS realice la devolución de llamada correctamente?
JavaScript:
$(document).ready(function() {
$(''#editAlbumArtistId'').select2({
placeholder: ''Search names'',
ajax: {
url: "/jQueryScripts/jQuerySelectListArtists.php",
dataType: ''json'',
quietMillis: 100,
data: function (term, page) {
return {
term: term, //search term
page_limit: 10 // page size
};
},
results: function (data, page) {
return {results: data.results};
}
},
initSelection: function(element, callback) {
var id = $(element).val();
if(id !== "") {
$.ajax("/jQueryScripts/jQuerySelectListArtists.php", {
data: {id: id},
dataType: "json"
}).done(function(data) {
callback(data);
});
}
}
});
});
HTML:
<p>
<input type=''hidden'' value="60" data-init-text=''Search names'' name=''editAlbumArtistId'' id=''editAlbumArtistId'' style="width:180px;"/>
</p>
Cada vez que actualizo la página, veo que la secuencia de comandos PHP se ejecuta y que devuelve la ID y el texto adecuados. Sin embargo, el campo no está actualizado y he intentado seriamente todo lo que puedo imaginar.
Estoy usando Select2 3.4.3.
Cualquier ayuda sería muy apreciada.
También puedes usar esto para menos código:
initSelection: function(element, callback) {
return $.getJSON("/jQueryScripts/jQuerySelectListArtists.php?id=" + element.val(), null, function(data) {
return callback(data[0]);
});
}
Vi este ejemplo en el wiki Seleccionar2, pero he tenido que lidiar con devolución de llamada (datos) vs devolución de llamada (datos [0]) Así como lo hizo.