AJAX resultados de emisión - Data.Results es indefinido

votos
1

Estoy intentando fijar Seleccionar2 utilizar Ajax y estoy bastante atascado. He depurado en IE y confirmó que mi AJAX está regresando resultados, por lo que no parece ser el problema. Las cargas de la caja de entrada, pero cuando escribo mi por leche sólo dice Buscando ... y nunca encuentra nada!

Aquí está mi Jquery:

        $(document).ready(function () {
            $('#e1').select2({
                placeholder: Select an ingredient...,
                minimumInputLength: 2,
                ajax: {
                    url: ../api/IngredientChoices,
                    dataType: jsonp,
                    quietMillis: 500,
                    data: function (term, page) {
                        return {
                            q: term,
                            page_limit: 10,
                            page: page

                        };
                    },
                    results: function (data, page) {
                        var more = (page * 10) < data.total;
                        return {
                            results: data.MainName, more:more
                        }

                    }
                }
            });
        });

JSON:

[{SubItemID:1,MainItemID:1,SubName:2%,MainName:Milk},{SubItemID:2,MainItemID:1,SubName:Skim/Fat Free,MainName:Milk},{SubItemID:3,MainItemID:2,SubName:Chedder,MainName:Cheese}]

HTML:

<td><input type=hidden id=e1 /></td>

Si cambio el tipo de datos a ser sólo JSON consigo un tipo diferente de error al escribir mi en la caja.

introducir

Aquí está el código final para la versión de trabajo:

            $('#e1').select2({
                placeholder: Select an ingredient...,
                minimumInputLength: 2,
                ajax: {
                    url: ../api/IngredientChoices,
                    dataType: json,
                    quietMillis: 500,
                    data: function (term, page) {
                        return {
                            q: term,
                            page_limit: 10,
                            page: page

                        };
                    },
                    results: function (data, page) {
                        var more = (page * 10) < data.length;
                        console.log(more);
                        console.log(data);
                        return { results: data, more: more };

                    },
                    formatResult: function (post) {
                        markup = '<strong>' + post.text + '</strong>';
                    }
                }
            });
Publicado el 25/01/2013 a las 06:36
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
4

El error está encontrando parece ser debido al formato de los resultados que está obteniendo. Select2 Se espera que los resultados sean una colección de objetos con el ID: y texto: atributos.

[{Id: 1, texto: 'cadena'}, {id: 2, texto: 'otra cadena.'}]

Respondida el 25/01/2013 a las 19:01
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more