Bokerão Postado Junho 18, 2009 Denunciar Share Postado Junho 18, 2009 (editado) Pessoal... mas uma vez dúvida sobre o retorno do AJAX.Desculpem se a pergunta é idiota, mas enfim, vamos lá.Tenho uma busca de dados por CEP em AJAX, a busca vai até o PHP que retorna um array com o bairro, cidade, etc...Bem, no AJAX, como eu faço para pegar esses dados popular os inputs (Bairro, Cidade) do formulário HTML???Valeu gente... Editado Junho 25, 2009 por Bokerão Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Junho 18, 2009 Denunciar Share Postado Junho 18, 2009 Como o código PHP é retornado ?Se estiver no formato HTML, basta modificar a propriedade innerHTML dos camposEx.:document.getElementById("meu_select").innerHTML=meu_objeto.responseText Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bokerão Postado Junho 18, 2009 Autor Denunciar Share Postado Junho 18, 2009 Eu to trabalhando com o Lumine (ORM PHP), então é retornado um Array:Array ( [0] => Array ( [uf] => [nome] => Cremação [localidade] => 4565 [cidade] => Belém [bairro] => 6727 [id_tipo_localidade] => 1 [descricao] => São Miguel [cep] => 66065215 [tipo_logradouro] => 140 [desc_tipo_logradouro] => Passagem [id] => 224321 [descricao_abreviada] => Passagem São Miguel [descricao_sem_acento] => são Miguel [servidor] => Array ( ) [uf_v] => [bai_nu_sequencial_fim] => [log_complemento] => [log_tipo_logradouro] => [log_status_tipo_log] => ) ) Endereco: Passagem são Miguel A questão é como trabalhar com esse retorno para que alguns itens desse array preencham os htmls do form? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Junho 18, 2009 Denunciar Share Postado Junho 18, 2009 O ideal seria percorrer todos os elementos desse array e utilizar um separador para cada elemento, deixando o código mais organizadoExemplo:Localidade 1|yyy|Nome do lugar 2|valor 3 E depois utilizar o método split da classe string para gerar o array novamente em javascript. Após isso, você pode percorrer o array e gerar os elementos dinamicamente var s=document.getElementById("select") var y s.innerHTML="" //Limpa o select a=xmlhttp.responseText.split("|") for(var i=0;i<a.length;i++){ y=document.createElement("option") y.value=a[i] //Valor enviado pelo formulário y.innerHTML=a[i] //Texto que aparecerá para o usuário s.appendChild(y) } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bokerão Postado Junho 18, 2009 Autor Denunciar Share Postado Junho 18, 2009 Entendi o conceito, mas ali você colocou select como exemplo.No meu caso seriam vários inputs... eu teria que setar no PHP ao "refazer" o array algum indicador de qual campo é o que, para poder depois identificar que a rua é do input "rua" bairro é do input "bairro" , inclusive alguns itens do array eu nem vou usar (não tenho permissao de mexer na instrucao SQL).Teria idéia de como fazer nesse caso?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Junho 18, 2009 Denunciar Share Postado Junho 18, 2009 Se for vários campos, o retorno poderia ser algo como:Cidade 1!Bairro 1_Bairro 2_Bairro 3|Cidade 2!Bairro 1_Bairro 2_Bairro3 Ou seja, após o nome da cidade haveriam os respectivos bairros Para recuperar, poderia ser algo assim: var cidades cidades["nome"]="" cidades["bairro"]=[] var select_cidades=document.getElementById("cidades") var select_bairros=document.getElementById("bairros") var a=xmlhttp.responseText.split("|") var b var k seu_select.innerHTML="" //Limpa o select for(var i=0;i<a.length;i++){ //Salva os dados b=a[i].split("_") cidades["nome"]=b[0] for(var y=1;y<b.length;y++){ cidades["bairro"][y-1]=b[y] } //Inclui a opção no select k=document.createElement("option") k.value=cidades["nome"][i] k.innerHTML=cidades["nome"][i] select_cidades.appendChild(k) } //Quando o select for modificado select_cidades.onchange=function(){ select_bairros.innerHTML="" //Limpa o select dos bairros for(var i=0;i<cidades["bairros"].length;i++){ k=document.createElement("option") k.value=cidades[this.value]["bairros"][i] k.innerHTML=cidades[this.value]["bairros"][i] } }Obs.:Não cheguei a testar, mas deve funcionar Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Bokerão
Pessoal... mas uma vez dúvida sobre o retorno do AJAX.
Desculpem se a pergunta é idiota, mas enfim, vamos lá.
Tenho uma busca de dados por CEP em AJAX, a busca vai até o PHP que retorna um array com o bairro, cidade, etc...
Bem, no AJAX, como eu faço para pegar esses dados popular os inputs (Bairro, Cidade) do formulário HTML???
Valeu gente...
Editado por BokerãoLink para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
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.