Input preenche formulário com ajax
Boas galera!
Este aqui, é complementar do Combobox preenche input ajax.
Muita gente já perguntou, e já vi muitos outros usando esse meu script por ai. Para facilitar, fica aqui o script modificado, para que no lugar do
Para deixar simples, e análogo ao outro, estou usando o ‘nome’ como campo a ser pesquisado. Porém, convém lembrar, que o ideal, é trabalharmos com algo mais consistente, para esse tipo de consulta, como o CPF, ou RG.
index.html
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("input[name='nome']").blur(function(){
var $endereco = $("input[name='endereco']");
var $telefone = $("input[name='telefone']");
$endereco.val('Carregando...');
$telefone.val('Carregando...');
$.getJSON(
'function.php',
{ nome: $( this ).val() },
function( json )
{
$endereco.val( json.endereco );
$telefone.val( json.telefone );
}
);
});
});
</script>
</head>
<body>
<form action="" method="post">
<label>Nome: <input type="text" name="nome" /></label>
<label>Endereço: <input name="endereco" type="text" disabled="disabled" value="" /></label>
<label>Telefone: <input type="text" name="telefone" value="" /></label>
</form>
</body>
</html>
function.php
<?php
/**
* função que devolve em formato JSON os dados do cliente
*/
function retorna( $nome, $db )
{
$sql = "SELECT `id`, `nome`, `telefone`, `endereco`
FROM `cliente` WHERE `nome` = '{$nome}' ";
$query = $db->query( $sql );
$arr = Array();
if( $query->num_rows )
{
while( $dados = $query->fetch_object() )
{
$arr['endereco'] = $dados->endereco;
$arr['telefone'] = $dados->telefone;
}
}
else
$arr['endereco'] = 'não encontrado';
return json_encode( $arr );
}
/* só se for enviado o parâmetro, que devolve os dados */
if( isset($_GET['nome']) )
{
$db = new mysqli('localhost', 'root', '123', 'test');
echo retorna( filter ( $_GET['nome'] ), $db );
}
function filter( $var ){
return $var;//a implementação desta, fica a cargo do leitor
}
dump.sql
--
-- Estrutura da tabela `cliente`
--
CREATE TABLE IF NOT EXISTS `cliente` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nome` varchar(50) NOT NULL,
`telefone` varchar(14) NOT NULL,
`endereco` varchar(70) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Extraindo dados da tabela `cliente`
--
INSERT INTO `cliente` (`id`, `nome`, `telefone`, `endereco`) VALUES
(1, 'Bruno', '(11) 1234-5678', 'Rua dos Bobos, 0'),
(2, 'William', '(22) 2345-6789', 'Avenida blablabla, 14');
Prontinho.