AJAX risultati emissione - Data.Results è indefinito

voti
1

Sto provando ad installare Select2 da usare Ajax e sono piuttosto bloccato. Ho debug in IE e ha confermato che il mio AJAX sta tornando risultati, in modo che non sembra essere il problema. I carichi casella di input, ma quando digito mi a latte si dice solo ricerca ... e non trova mai niente!

Ecco la mia 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>

Se cambio la dataType essere solo JSON ottengo un diverso tipo di errore quando si digita mi nella casella.

entrare

Ecco il codice finale per la versione di lavoro:

            $('#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>';
                    }
                }
            });
È pubblicato 25/01/2013 alle 03:36
fonte dall'utente
In altre lingue...                            


1 risposte

voti
4

L'errore si è verificato sembra essere a causa del formato dei risultati che si stanno ottenendo. Select2 si aspetta risultati essere una raccolta di oggetti con id: e testo: gli attributi.

[{Id: 1, il testo: 'String'}, {id: 2, il testo: 'altra stringa.'}]

Risposto il 25/01/2013 a 16:01
fonte dall'utente

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