Galera, sou novo por aqui e em códigos PHP e Web, mas, tenho me virado. Porém esbarrei em um problema.
Estou usando um banco PostgreSQL para desenvolvimento de uma aplicação simples para minha empresa onde eu quero digitar um código numérico no campo do formulário e ele me retornar 2 outros campos deste formulário preenchidos baseado no código pesquisado no banco.
Tenho a minha página index.html com o conteúdo:
<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='usucod']").blur(function(){
var $usunom = $("input[name='usunom']");
var $pricod = $("input[name='pricod']");
$usunom.val('Carregando...');
$pricod.val('Carregando...');
$.getJSON(
'function.php',
{ usucod: $( this ).val() },
function( json )
{
$usunom.val( json.usunom );
$pricod.val( json.pricod );
}
);
});
});
</script>
</head>
<body>
<form action="" method="post">
<label>Código: <input type="text" name="usucod" /></label>
<label>Nome: <input name="usunom" type="text" disabled="disabled" value="" /></label>
<label>Pricod: <input type="text" name="pricod" value="" /></label>
</form>
</body>
</html>
e minha página function.php com o conteúdo:
<?php
/**
* função que devolve em formato JSON os dados do cliente
*/
function retorna( $usucod, $db )
{
$sql = "SELECT usucod, usunom, pricod FROM usuario WHERE usucod = {$usucod} ";
$query = $db->query( $sql );
$arr = Array();
if( $query->num_rows )
{
while( $dados = $query->fetch_object() )
{
$arr['usunom'] = $dados->usunom;
$arr['pricod'] = $dados->pricod;
}
}
else
$arr['usunom'] = 'não encontrado';
return json_encode( $arr );
}
/* só se for enviado o parâmetro, que devolve os dados */
if( isset($_GET['usucod']) )
{
$db = pg_connect("host=XXX.XXX.XXX.XXX port=5432 dbname=banco user=usuario password=senha");
echo retorna( filter ( $_GET['usucod'] ), $db );
}
function filter( $var ){
return $var;
}
Ao digitar o código, meus campos a serem preenchidos ficam somente com o valor 'carregando...' visível.
Agradeço a ajuda!