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

buscar dados sem submeter form


lenowds

Pergunta

Galera to fazendo um form, e nesse form eu tenho um campo, cep, onde o usuário digita o cep, e quando ele sai do campo eu vou ate o servidor, busco os dados referente ao cep, como enredeço, bairro, cidade, estado, quando eu pegar esses dados eu tenho mostrar no campo que corresponde ao bairro o valor que eu peguei, assim por diante, mais isso sem ter que submeter o form.

não estou com o código aki, esta no meu trab, mais logo eu posto ele aki.

Se alguém souber e puder me dar um Help.

vlw galera.

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Galera to fazendo um form, e nesse form eu tenho um campo, cep, onde o usuário digita o cep, e quando ele sai do campo eu vou ate o servidor, busco os dados referente ao cep, como enredeço, bairro, cidade, estado, quando eu pegar esses dados eu tenho mostrar no campo que corresponde ao bairro o valor que eu peguei, assim por diante, mais isso sem ter que submeter o form.

não estou com o código aki, esta no meu trab, mais logo eu posto ele aki.

haa eu tentei fazer com ajax mais não conheço muito bem, então não deu muito certo...

Se alguém souber e puder me dar um Help.

vlw galera.

Link para o comentário
Compartilhar em outros sites

  • 0

você pode fazer a verificação com o onBlur, que executa o código assim que o campo especifico perde o foco...

agora, quanto ao código que vai realizar essa verificação, pelo que eu entendi você quer fazer uma verificação automática em apenas um campo de seu form, e com base nessa verificação mostrar outro valor em outro campo ?

Link para o comentário
Compartilhar em outros sites

  • 0

Juan H Biscaia

hee bem isso mesmo, eu tenho que fazer isso com ajax, dai quando eu saio do campo, ele executa um trexo de código, que vai ate meu servidor captura algumas informação, e me devolve, mais tudo isso em php, quando eu tiver o valor de retorno dessa consulta, eu tenho que prencher os campos (input) do meu form, os dados que ele vai me retornar é endereco, cidade, bairro,...

só que eu não sei como eu posso fazer, se tem alguma função em ajax, sei lá.. não sei mesmo como eu posso fazer.

Se alguém souber e puder colaborar eu agradeço.

vlw

Link para o comentário
Compartilhar em outros sites

  • 0

não deu pra eu usar o codebox, porque estava com problemas, vlw

Galera esse é o meu codigo .html

<tr >
<th><label for="cep">CEP:<span class="obrg">*</span></label></th>
<td>
<input type="text" name="cep_residencia" id="cep_residencia" value="" maxlength="8" tabindex="1" />
<input class="radio" type="checkbox" name="cep_res" id="cep_res" value="1" onClick="v_cep(1);" /> CEP n&atilde;o localizado
</td>
<td>&nbsp;</td>
</tr>
<tr>
<th><label for="endereco">Endere&ccedil;o:</label></th>
<td><input class="disabled" type="text" name="logradouro" id="logradouro" value="" size="50" maxlength="50" tabindex="1" disabled="true" /></td>
<td>&nbsp;</td>
</tr>
<tr>
<th><label for="bairro">Bairro:</label></th>
<td><input class="disabled" type="text" name="bairro_res" id="bairro_res" value="" size="50" maxlength="25" tabindex="1" disabled="true" /></td>
<td>&nbsp;</td>
</tr>
<tr>
<th><label for="cidade">Cidade:</label></th>
<td><input class="disabled" type="text" name="cidade_res" id="cidade_res" value="" size="50" maxlength="25" tabindex="1" disabled="true" /></td>
<td><input class="disabled" type="text" name="uf" id="uf" value="" size="3" maxlength="2" disabled="true" /></td>
</tr>
meu código .php
$Dados = array(
'0' => $_POST['cnpj'],
'1' => $_POST['cep_residencia'],
);
/*INSTANCIA DA CLASSE TTRANSACAO, ONDE T INDICA QUE É UMA CLASSE, E O NOME LOGO APOS O T INDICA O NOME DA CLASSE
* TTRANSACAO E ONDE FICA TODOS AS FUNCOES REFERENTE TRANSACAO COM O SERVIDOR
*/
require './CCep/TTransacao.php';

$Tran = new TTransacao;
$Tran->setTransacao($tran);
$Tran->setItem("1","");
$Tran->setItem("2", date("mdHis"));
$Tran->setItem("3","00");
$Tran->setItem("4",$Dados[0]);
$Tran->setItem("5",$Dados[1]);

/* VARIAVEL (ARRAY) ONDE ESTA SENDO GUARDADO O RESULTADO DE NOSSA BUSCA*/
$campos = $Transacao->setLinha($autenticador, $porta, $bit62);

Essa variavel $campos, ela me traz um array com os dados que eu preciso, endereco, bairro, cidade, uf, isso tudo eu tenho dentro das variaveis, $endereco, $bairro, $cidade, $estado,

eu preciso pegar esses dados e jogar dentro do form, mais sem ser necessario eu dar um submit, somente ao sair do campo com o evento Onblur, o trexo de codigo é executado e me retorna os dados,

Se alguém souber, agradeço.

Editado por lenowds
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

  • 0

Galera eu agradeço ao pessoal que tentou me ajudar, e as dicas,

hashashashashsahashsa

To rindo agora a toa, agora são 2:10.

Consegui fazer fazer isso sozinho..

hashashsahas

foi complicado, mais no final eu achei ate que fácil, hashashas

então eu resolvi postar o meu cádigo aki, e a solução para o meu problema, ou o nosso, eu fiz um improviso em um código meio que parecido,

Até porque eu não estou no meu trab, não é?

Agora é só eu chegar lá e botar pra quebrar, hashashashas

.html, com o codigo ajax já inplementado.

<html>
<head>
<title>Teste</title>
<script language="JavaScript">
function BuscaCep(valor){
//VERIFICA SE O BROWSER TEM SUPORTE AO AJAX
try {
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
try {
ajax = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(ex){
try {
ajax = new XMLHttpRequest();
}
catch(exc){
alert("Esse browser não tem recursos para uso do Ajax");
ajax = null;
}
}
}
//CASO TENHA SUPORTE AS AJAX então EXECUTA
if(ajax){

idOpcao = document.getElementById("cep");

ajax.open("POST", "gravar.php", true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

ajax.onreadystatechange = function(){
//ENQUANTO ESTIVER PROCESSANDO APARECE A MSG Carregando...
if(ajax.readyState == 1){
idOpcao.innerHTML = "Carregando...";
}
//ASSIM QUE FOR PROCESSADO CHAMA A FUNÇÃO PROCESSXML PARA PERCORRER OS DADOS DO MEU XML
if(ajax.readyState == 4 ) {
if(ajax.responseXML){
processXML(ajax.responseXML);
}
else {
//CASO não SEJA UM ARQUIVO XML, então IMPRIMA A MENSSAGEM DE ERRO
idOpcao.innerHTML = "erro de arquivo XML";
}
}
}
//PASSA O VALOR DO MEU CEP
var params = "cep="+valor;
ajax.send(params);
}
}
function processXML(obj){
var dataArray = obj.getElementsByTagName("dado");
var xml = ajax.responseXML;
//RESULTADO DE ELEMENTOS CONTIDOS NO MEU ARQUIVO XML
if(dataArray.length > 0) {
//PERCORRE O XML PARA OBTER MEUS DADOS
for(var i = 0 ; i < dataArray.length ; i++) {
var item = dataArray[i];
//CONTEUTO DOS CAMPOS QUE ESTOU RECUPERANDO
var cep = item.getElementsByTagName("cep")[0].firstChild.noteValue;
var end = item.getElementsByTagName("end")[0].firstChild.nodeValue;
var bairro = item.getElementsByTagName("bairro")[0].firstChild.nodeValue;
var cid = item.getElementsByTagName("cid")[0].firstChild.nodeValue;
var estado = item.getElementsByTagName("estado")[0].firstChild.nodeValue;

idEnd = document.getElementById('end').value = end;
idBairro = document.getElementById('bairro').value = bairro;
document.getElementById('cid').value = cid;
document.getElementById('estado').value = estado;
}
}
else {
//SE O MEU XML ESTIVER VAZIO, MOSTRA A MSG
idOpcao.innerHTML = "--Primeiro digite o cep1--";
}
}
</script>
</head>
<body>
<form name="frm" action="gravar.php" method="POST">
<input type="hidden" name="postback" value="true"/>
<table>
<tbody>
<tr>
<th>Dados Pessoais</th>
</tr>
<tr>
<th style=""><label for="nome">Nome:</label></th>
<td><input type="text" id="nome" name="nome" value="" tabindex=1></td>
</tr>
<tr>
<th style=""><label for="cep">Cep:</label></th>
<td><input type="text" id="cep" name="cep" value="" tabindex=1 onChange="BuscaCep(this.value);"/></td>
</tr>
<tr>
<th style=""><label for="end">Endereço:</label></th>
<td><input type="text" id="end" name="end" value="" tabindex=1 disabled="true"></td>
</tr>
<tr>
<th style=""><label for="bairro">Bairro:</label></th>
<td><input type="text" id="bairro" name="bairro" value="" tabindex=1 disabled="true"></td>
</tr>
<tr>
<th style=""><label for="cid">Cidade:</label></th>
<td><input type="text" id="cid" name="cid" value="" tabindex=1 disabled="true"></td>
</tr>
<tr>
<th style=""><label for="uf">Estado:</label></th>
<td><input type="text" id="estado" name="estado" value="" tabindex=1 disabled="true"></td>
</tr>

<tr>
<td>&nbsp;</td>
<td colspan="1">
<input type="submit" name="enviar" value="Salvar">
<input type="reset" name="limpar" value="Limpar">
</td>
</tr>
</tbody>
</table>
</form>
</body>
</html>[/codebox]

.PHP

[code]<?php         $pCep = $_POST["cep"];         $xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";            $xml .= "<dados>\n";                     $end = "RUA MARECHAL";         $bairro = "CENTRO";         $cid = "CURITIBA";         $estado = "PR";                                      $xml .= "<dado>\n";               $xml .= "<cep>".$pCep."</cep>\n";                             $xml .= "<end>".$end."</end>\n";           $xml .= "<bairro>".$bairro."</bairro>\n";           $xml .= "<cid>".$cid."</cid>\n";           $xml .= "<estado>".$estado."</estado>\n";                  $xml .= "</dado>\n";                $xml .= "</dados>\n";              Header("Content-type: application/xml; charset=iso-8859-1");              echo $xml;[/code]

Pronto esta ai,

Basta ressaltar que esse codigo foi retirado do seguinte link

http://imasters.uol.com.br/artigo/3918

Sofreu algumas mudanças e alterações, para que fosse util no meu caso,

Vlw galera

Editado por fercosmig
Adiconar tag CODE
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...