Formulário php+ajax
Boa tarde pessoas,
Bom, não sou programadora então vim recorrer o fórum pois não consegui resolver.
Eu estou criando um formulário simples para captação de dados e gostaria que dois inputs preenchessem automaticamente quando eu preencho um outro input, através de uma busca no banco mysql. Pesquisei e achei um script lindo aqui que funciona normal quando testo, mas quando faço a adaptação pro meu teste, não funciona. Eu olho e não vejo erros, ai preciso de uma luz. Provavelmente é algo besta mas...
Esses são os scripts que encontrei aqui no imasters
<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>
<?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', '', 'test');
echo retorna( filter ( $_GET['nome'] ), $db );
}
function filter( $var ){
return $var;//a implementação desta, fica a cargo do leitor
}
Aqui é o meu teste, depois iria implantar o form de verdade:
<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='idpdv']").blur(function(){
var regional = $("input[name='regional']");
$( regional ).val('Carregando...');
$.getJSON(
'function.php',
{ idpdv: $( this ).val() },
function( json )
{
$( regional ).val( json.regional );
}
);
});
});
</script>
</head>
<body>
<form action="" method="post">
<label>Nome: <input type="text" name="idpdv" /></label>
<label>Regional: <input name="regional" type="text" value="" /></label>
</form>
</body>
</html>
<?php
function retorna( $idpdv, $db )
{
$sql = "select `Regional` FROM tbl_regional WHERE CodRegional = '{$idpdv}' ";
$query = $db->query( $sql );
$arr = Array();
if( $query->num_rows )
{
while( $dados = $query->fetch_object() )
{
$arr['Regional'] = $dados->regional;
}
}
else
$arr['Regional'] = 'não encontrado';
return json_encode( $arr );
}
/ só se for enviado o parâmetro, que devolve os dados /
if( isset($_GET['idpdv']) )
{
$db = new mysqli('localhost', 'root', '', 'test');
echo retorna( filter ( $_GET['idpdv'] ), $db );
}
function filter( $var ){
return $var;//
}
Cacei no fórum as soluçoes mas mesmo assim não consegui resolver. HALP PLEASE
Discussão (10)
Carregando comentários...