sexta-feira, 15 de outubro de 2010

[PHP] Consulta ao banco de dados + Ajax sem refresh

Olá pessoal, meu primeiro post aqui no guia do php! Ele esta reservado a uma função que me ajudou bastante e quero compartilhá-la com vocês. Ela executa uma consulta ao banco de dados via HTTPRequest e preenche o formulário automaticamente sem refresh na página a partir de um campo preenchido.
Essa função é viável em casos específicos onde a busca pode ser filtrada por uma identificação que não se repetirá no banco de dados e que possua uma quantidade certa de caracteres, como por exemplo, a id do produto.
Primeiro começaremos com a criação da tabela:
- Tabela: teste
create table teste (
id integer not null primary key,
descricao character varying(20) not null,
preco integer not null,
quantidade integer not null
)
- Inserindo dados na tabela
insert into teste2 (id,descricao,preco,quantidade) values (11111,‘caneta’,2.50,10);
insert into teste2 (id,descricao,preco,quantidade) values (22222,‘lápis’,1.20,15);
insert into teste2 (id,descricao,preco,quantidade) values (33333,‘borracha’,1.00,10);
logo após é criada uma pasta com nome ajax onde será colocada a pagina ajax.js que contem a função sack.
- ajax.js
download do arquivo
agora, criaremos a pagina principal do formulário:
- index.html

“”
method=“POST”>

“0″>
id:“text” size=“15″ maxlength=“5″>
descrição:“text” size=“15″ maxlength=“15″>
preço:“text” size=“15″ maxlength=“6″>
quantidade:“text” size=“15″ maxlength=“6″>
E agora, a pagina getID que irá fazer a consulta ao banco de dados. - getID.php
$host = ‘localhost’;
$bdname = ‘banco’;
$user = ”;
$password = ”;
$conexao = pg_connect(“host=$host dbname=$dbname user=$user password=$password”) or die (“Não foi possível conectar ao Banco de dados.”);
if ( isset( $_GET[ 'id' ] ) ){ $res = pg_query(“SELECT * FROM teste2 WHERE id=’” . $_GET[ 'id' ] . “‘”);
// caso haja retorno na consulta, irá preencher os campos do formulário, senão irá apagar seu conteúdo.
if ( $inf = pg_fetch_array( $res ) ){
echo “formObj.descricao.value = ‘” . $inf[ "descricao" ] . “‘;n”;
echo “formObj.preco.value = ‘” . $inf[ "preco" ] . “‘;n”;
echo “formObj.quantidade.value = ‘” . $inf[ "quantidade" ] . “‘;n”;
}else{
echo “formObj.descricao.value = ”;n”;
echo “formObj.preco.value = ”;n”;
echo “formObj.quantidade.value = ”;n”;
}
}
?>
O sistema interage da seguinte maneira, ao perder o foco do campo ID do formulário através do onblur na função initFormEvents, a função getClientData fará a verificação do valor quando este não estiver nulo ou diferente da quantidade estipulada, caso esteja correto ele executa a função requestFile na pagina getID.php onde é feita a consulta através da variável id, em seguida ele retorna as respostas no formulário especificado na função showClientData e assim são executadas todas as funções da classe contidas na pagina Ajax.php que são responsáveis por todo o processo em execução sem refresh na página.
Caso seja necessária a utilização de mais de uma variável para realizar a consulta, basta acrescentar uma variável em Ajax que pegue o valor do campo especifico, adicioná-lo a url da função ajax.requestFile e fazer o tratamento dela na pagina getID.php.
Bom pessoal, espero que essa função ajude vocês tanto quanto me ajudou.
Até a próxima!

por: Alonso

Nenhum comentário:

O Curso

O Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas das Faculdades Integradas Simonsen - FIS, é um curso presencial, reconhecido pela Portaria 1.003 de 12.07.1993 (D.O.U. 13.07.1993), com carga horária mínima de 2.334 horas, que poderão ser cumpridas em no mínimo 03 anos (06 semestres letivos) e foi recentemente aditado pela Portaria nº 281, 29 de setembro de 2009, publicada no D.O.U nº 188, de 01 de outubro de 2009, Seção 1, página 19.
Os graduados nos Cursos Superiores de Tecnologia denominam-se tecnólogos, são profissionais de nível superior com formação para a produção, inovação científico-tecnológica e para a gestão de processos de produção de bens e serviços.

Faculdades Integradas Simonsen