Select2 “TypeError: un est undefined” erreur
J'ai ce code pour créer un Select2
élément à partir d'un champ de saisie:
var codigo_arancelario = $codigo_arancelario.val();
$codigo_arancelario.select2({
placeholder: "Seleccione un estado",
ajax: {
dataType: 'json',
url: function () {
return Routing.generate('obtenerCodigoArancelario');
},
data: function (codigo_arancelario) {
return {
filtro: codigo_arancelario
}
},
results: function (data) {
var myResults = [];
$.each(data.entities, function (index, item) {
myResults.push({
'id': item.id,
'nombre': item.nombre
});
});
return {
results: myResults
};
}
},
formatNoResults: function () {
return "No se encontró el código";
},
formatAjaxError: function () {
return "No hay conexión con el servidor";
}
});
Mais chaque fois que j'essaie de l'utiliser, j'obtiens cette erreur sur la console de Firebug:
TypeError: un est indéfini
J'ai vérifié les en-têtes de Réponse et j'ai eu un Content-Type application/json
et aussi, j'ai vérifier les en-têtes de Requête depuis que je suis en utilisant Symfony2 dans le côté serveur et envoyer le X-Requested-With XMLHttpRequest
. Symfony2 de retour de la fonction JSON comme celui-ci:
{
"valid":false,
"entities":[
{
"id":101,
"codigo":"4545",
"descripcion":null
},
{
"id":102,
"codigo":"45455",
"descripcion":"gfhgfhfghfgh"
},
{
"id":103,
"codigo":"45457",
"descripcion":"etert"
}
]
}
Où est l'erreur sur mon code?
aucun des deux, on dispose de données. L'exemple JSON est ce que
jsfiddle.net/arunpjohny/e39ftb64/1
data.entities
ontjsfiddle.net/arunpjohny/e39ftb64/1
OriginalL'auteur ReynierPM | 2014-10-22
Vous devez vous connecter pour publier un commentaire.
Select2 attend
[{text="john doe",id="1"},{text="jane doe",id="2"}]
si vous avez besoin de changer
'nombre': item.nombre
à'text': item.nombre
il devrait ressembler à suivre:
n'est pas défini, je pense que vous avez besoin
item.descripcion
OriginalL'auteur Mohit Kumar
Peut-être de vos données est mal formiate :
données
Type: PlainObject ou une Chaîne ou un Tableau
Les données sont envoyées au serveur. Il est converti en une chaîne de requête, si ce n'est déjà une chaîne de caractères. Il est ajouté à l'url pour OBTENIR des demandes. Voir processData option pour éviter que ce traitement automatisé. L'objet doit être de paires Clé/Valeur. Si la valeur est un Tableau, jQuery sérialise plusieurs valeurs avec la même clé, basée sur la valeur de la tradition (décrit ci-dessous).
voir jquery ajax
utiliser le débogage au point d'arrêt à la ligne: var myResults = []; imprimer le résultat de la pile de la valeur.
OriginalL'auteur Feng Lin