Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Allan Tavares

jQuey/Ajax Plugin Select2 e Json/Jsonp problemas com retorno

Recommended Posts

Boa tarde pessoal, depois de muuuuuuito pesquisar no google, e nos exmeplos(MILHARES) usados por diversos usuários, estou auqi,porque não consigo usar o Plugin SELECT2 em AJAX.

 

Isto porque, por mais correto que esteja meu arquivo JSON/JSONP, os dados não retornam....somente usando o exemplo do site oficial, com o json do site de videos....:

http://ivaynberg.github.io/select2/ (Na parte: Loading Remote Data)

 

Mas quando vou colocar minha URL e os dados que eu preciso retornar, simplesmente NÃO FUNCIONA!

Meu Json: (produtos.php)

{"results":[{"cod_produto":"3","descricao":"BULE 10 POLIDO PADRAO ARLETE 2L","cod_barras":"7898452821020"},
{"cod_produto":"5","descricao":"COPO ARNO MAGICLEAN PERFORMA CRISTAL BRC","cod_barras":"7896483020023"}]}
 
Meu código do plugin:

 $('#test').select2({
        ajax: {
            url: "produtos.php",
            dataType: 'jsonp',
            quietMillis: 100,
            data: function(term, page) {
                return {
                    page_limit: 5,
                    q: term
                };
            },
            results: function(data, page ) {
                return { results: data.results }
            }
        },
        formatResult: function(pega) {
            return "<div class='select2-user-result'>" + pega.descricao + " " + pega.cod_barras + "</div>";
        },
        formatSelection: function(pega) {
            return pega.descricao;
        },
        initSelection : function (element, callback) {
            var elementText = $(element).attr('data-init-text');
            callback({"q":elementText});
        }
    });

Por favor, me ajudem, aguardo!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

OBS.: se eu trocar "jsonp" por "json", ele retorna sim a lista de itens encontrados, mas não permite selecionar nenhum deles.


só possui erros no CSS relacionados a "background-image"...

 


o problema parece ser mesmo no retorno dos dados....mas eu não consigo entender a lógica da linguagem...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desde que a sua requisição é local:

url: "produtos.php",
então vc deve utilizar json e não jsonp

 

E ai, o seu resultado deve ser apenas:

[{"cod_produto":"3","descricao":"BULE 10 POLIDO PADRAO ARLETE 2L","cod_barras":"7898452821020"},
{"cod_produto":"5","descricao":"COPO ARNO MAGICLEAN PERFORMA CRISTAL BRC","cod_barras":"7896483020023"}]
para ser uma resposta jSON válida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desde que a sua requisição é local:

url: "produtos.php",
então você deve utilizar json e não jsonp

 

E ai, o seu resultado deve ser apenas:

[{"cod_produto":"3","descricao":"BULE 10 POLIDO PADRAO ARLETE 2L","cod_barras":"7898452821020"},
{"cod_produto":"5","descricao":"COPO ARNO MAGICLEAN PERFORMA CRISTAL BRC","cod_barras":"7896483020023"}]
para ser uma resposta jSON válida.

 

 

Mudei de 'jsonp' para 'json'

 

de return { results: data.results }; para return { results: data };

 

o problema continua o mesmo =(

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem q alterar no server-side também.

 

E comece a debugar:

            results: function(data, page ) {
                console.log(data, typeof data);
            }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alterei o php também pra ficar de acordo com o seu exemplo, inclusive deixei um echo padrão apra um único item, para usar de teste....

os problemas continuam, e no debug do console, retorna:

 

[Object] "object"

 

 

você tem q alterar no server-side também.

E comece a debugar:

            results: function(data, page ) {
                console.log(data, typeof data);
            }

fiz o debug aqui:

"initSelection : function (element, callback) {
console.log(element, typeof element);"

 

me retornou:

 

{0: <input#id_produto>, context: <input#id_produto>, length: 1} "object"

 

tem algo de errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.