Conheça também: Onmasters . Ofertas . Divulgue! . Vai.la . Geraboleto . Baixa.la . Assista.la . Joga.la
» Início » Desenvolvimento » Ajax » Criando um auto-completar em Ajax com PHP -->
 
Avaliação: | Publicado em: 26/06/2007
Criando um auto-completar em Ajax com PHP
Christian Benseler Programador web, há 3 anos trabalhando diretamente com Ajax. Já passei pela programação desktop (C/C++), já trabalhei na área de engenharia (minha formação), mas nada em termos profissionais se tornou mais gratificante do que ver os resultados rápidos de aplicações web!


Boa noite pessoas que acompanham o PlugMaster!
No final de semana passada fui convidado a ser um colaborador aqui do site, e de pronto aceitei! Nada melhor do que poder contribuir com um pouco de conhecimento, até porque grande parte do que eu conheço com relação a Ajax veio por meio de outros sites, colunistas, artigos.

Vou, nesse primeiro artigo, mostrar como fazer o básico para um auto-completar de um input (parecido com o Google Suggest). No nosso caso, vamos procurar por usuários em uma tabela de um banco de dados. Para isso, utilizarei PHP no lado do servidor. Mas, a linguagem do lado do servidor não é o que realmente importa. Uma funcionalidade que utiliza Ajax deve ser: um cliente acessando um serviço que está no servidor.

No nosso caso, criei uma página PHP (name.php) que:
  • recebe um parâmetro para ser utilizado como filtro na nossa consulta: $name = $_GET["name"];
  • conecta ao banco de dados (no caso, utilizei o MySQL), acessando uma base que contenha uma tabela pm_users (essa tabela tem duas colunas, id e fullName);
  • efetua uma consulta à tabela utilizando $name como filtro na busca pelo campo fullName;
  • monta um array com os registros que satisfazem a busca;
  • retorna esse array no formato JSON (http://json.org/). JSON é um tipo de formato de troca de dados amplamente utilizado na web hoje em dia (tem vantagens e desvantagens com relação ao XML. Em um post futuro falo a respeito de cada um. Por hora, pode-se achar na web bons textos a respeito). Para transformar o array no formato JSON, utilizei uma classe do Zend Framework (http://framework.zend.com/).







Parabens pelo codigo, gostaria de saber se os campos do mysql id por exemplo tem que ser de qual tipo? Numero, VarChar?
Nao consegui executar o fonte, setando para o meu banco de dados. Será que existe algum paramentro oculto que tenha que modificar pra funcionar em outras tabelas do mysql?

Grato.
a variavel url o valor name=SHE@rnd=NaN. esse NaN ta certo, será que é por isso que o meu fonte nao quer funcionar?
Não quer passar da linha 13 "new Ajax.Request(url," do arquivo metods.js.

Grato.
Como eu faço para aceitar acentos nos resultados da busca? E para eu clicar em um nome que aparece no auto-completar e ir para o input?

Bom script
Muito interessante, mas tem um problema: no arquivo methods.js na linha 28 //faz alguma coisa no click// ele nao seleciona a informacao so faz o alerta. Como faz neste caso pra selecionar a informacao mostrada com o muose ou com a seta pra baixo do teclado e enter?