Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda ajax jsonp


Cheid

Pergunta

Olá pessoal,

Sou formado em Análise a 9 anos porém não exerço a função de programador, assim para um empreendimento contratei um profissional para desenvolver um site.

Acontece que em um dos cadastros desse portal, para um select de estado e cidades, o programador chamava os dados de uma outra url de seu site particular e agora este a tirou do ar e não atende minhas ligações.

Preciso de uma ajuda para criar uma página para que a função JS abaixo busque os dados de estados e cidades (simulando a página cep.mbeans.com.br).

Obs.: já possuo a base populada, só preciso de ajuda para saber como exportar os dados para o js capture as informações!

Obrigado!

function cidade_estado()
{
var $e = $('#estado');
var $c = $('#cidade');
var carrega_estados = function(pegaval){
$e.find('option').remove();
$e.html('<option value="">Carregando...</option>');
$.ajax({
type: 'GET',
url: 'http://cep.mbeans.com.br/estados'
contentType: 'application/json; charset=UTF-8',
dataType: 'jsonp',
success: function®{
$e.find('option').remove();
if(!r.erro)
{
for( var i = 0 ; i < r.length ; i++ )
{
if(r.sigla == 'PR' || r.sigla == 'SP') // Tirar essa linha quando expandir para todo o Brasil
$e.append('<option value="'+r.sigla+'">'+r.sigla+'</option>');
}
if(pegaval)
$e.val($e.attr('data-value'));
carrega_cidades($e.val(),pegaval);
}
}
});
};

var carrega_cidades = function(uf,pegaval){
$c.find('option').remove();
$c.html('<option value="">Carregando...</option>');
$.ajax({
type: 'GET',
url: 'http://cep.mbeans.com.br/cidades'
contentType: 'application/json; charset=UTF-8',
dataType: 'jsonp',
data: { estado_uf: uf },
success: function®{
$c.find('option').remove();
if(!r.erro && !r[0].erro)
{
for( var i = 0 ; i < r.length ; i++ )
{
$c.append('<option value="'+r.nome+'">'+r.nome+'</option>');
}
if(pegaval)
$c.val($c.attr('data-value'));
}
else
console.log(r.erro ? r.erro : r[0].erro);
}
});
};

carrega_estados(true);

$e.unbind('change').bind('change',function(){
carrega_cidades($e.val(),false);
});
}

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Estou iniciando a pouco tempo nesse assunto, mas pelo que eu entendi, você já possui o código php para retornar o os dados do bd, MAS não sabe a formatação que deverá retornar para que o seu <select> funcione...

Na página que você vai simular o url: 'http://cep.mbeans.com.br/estados crie um select que retorne os estados.

Tenta retornar algo do tipo ['MG','TO','SC','RR'] e veja o que acontece.

Mesma coisa para as cidades.

Link para o comentário
Compartilhar em outros sites

  • 0

Quando eu implemento, faço o retorno simplesmente com 'echo' ou 'printf' na tela, tipo :

<?
echo"[ 'MG','TO','SC','RR' ]";
?>

O resultado é capturado pelo ,ajax() nesse trecho:

success: function(r){   // retorna e poe o array no ' r ' ( dataType: 'jsonp',  )
                $c.find('option').remove();   // remove as opções do formulario
                if(!r.erro && !r[0].erro)    
                {
                    for( var i = 0 ; i < r.length ; i++ )   // pega comprimento do array
                    {
                        $c.append('<option value="'+r[i].nome+'">'+r[i].nome+'</option>');   //monta os options com o array [ 'MG','TO','SC','RR' ]
                    }
                    if(pegaval)
                        $c.val($c.attr('data-value'));
                }
                else
                    console.log(r.erro ? r.erro : r[0].erro);
            }

Sou muito iniciante nisso, veja se consegue entender. Busquei informações aqui http://json.org/

Editado por Sandro2011
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...