Ajuda com Sistema de Busca com autocomplete

7 respostas
M

Boa tarde pessoal, estou com uma dúvida e não sei por onde começar.

ja tenho um sistema web pronto e rodando, meu primeiro sistema, porem agora eu quero incrementar algo nele e me deu a ideia de fazer um sistema de busca onde eu digito uma letra e ja retorna do banco de dados algo relacionado ao que eu digitei: exemplo:

digito a letra l e ja traz os nomes que começam com L, assim sucessivamente, alguem teria algum exemplo pra eu dar uma olhada? não quero copiar, só que eu só aprendo lendo algo pronto, montar do 0 eu me complico um pouco.

abraços a todos

7 Respostas

B

Olá mouzer,
Não tenho nada disso pronto, nem sei ao certo se sei fazer isto.

Mas vou te falar da maneira com a qual faria, caso esteja errado o pessoal aí embaixo vai me corrigir.

Usaria ajax para fazer a busca, quando o usuário digitasse algo, chamaria um java script que usaria ajax para fazer a requisição e atualizar o local com as sugestões.
A requisição faria um select com todos os nomes iniciados pela letra digitado, por exemplo.

Só é preciso tomar cuidado, pois uma pessoa normalmente não digita uma letra a aguarda a sugestão, digita mais de um letra, e se no evento Java Script, faria uma requisição para cada um. Precisa pensar alguma maneira de controlar isso, fazer a requisição após exemplo, 1 segundo sem digitar.

mouzer:
Boa tarde pessoal, estou com uma dúvida e não sei por onde começar.

ja tenho um sistema web pronto e rodando, meu primeiro sistema, porem agora eu quero incrementar algo nele e me deu a ideia de fazer um sistema de busca onde eu digito uma letra e ja retorna do banco de dados algo relacionado ao que eu digitei: exemplo:

digito a letra l e ja traz os nomes que começam com L, assim sucessivamente, alguem teria algum exemplo pra eu dar uma olhada? não quero copiar, só que eu só aprendo lendo algo pronto, montar do 0 eu me complico um pouco.

abraços a todos

malokas

Você pode usar o autocomplete do richfaces, da uma olhada.

http://livedemo.exadel.com/richfaces-demo/richfaces/suggestionBox.jsf

M

Opa, obrigado pelas respostas,
porem nao entendi bem com richfaces, seria um arquivo xml? e como eu buscaria do banco de dados os nomes??

sei que tem o autocomplete do struts 2 com json mas nao achei um exemplo com dados vindos do banco de dados para poder estudar.

M

eu fiz assim e aparentemente busca os dados do banco de dados, porem, nao aparece o nome da pessoa cadastrada e sim o nome: br.com.sistema.Classes.Contato@18ef33e

oq poderia ser? segue o codigo:
autocompleter.java

public class autocompleter extends ActionSupport {
	
	private List<Contato> contatos;
	
	@Action(value = "testeauto", results = { 
			@Result(name = "success", location = "/jsp/testeauto.jsp"), 
			 })
			
	   
			public String execute() {
		try {
			contatos = new ProcuraContatosDAO().listaJson();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return SUCCESS;
		
		
	}

	public List<Contato> getContatos() {
		return contatos;
	}

	public void setContatos(List<Contato> contatos) {
		this.contatos = contatos;
	}


}

o jsp:

<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
<head>
    <title>Struts 2 Autocompleter Example!</title>
    <sx:head />
  </head>
  <body>
    <h1>Struts 2 Autocompleter Example!</h1>
    <s:label name="stateName" value="Select State Name:" />
    <sx:autocompleter name="StateName" list="contatos"/>
</body>
M

Alguem poderia me dar uma luz??

kenneth

Fala brow,

Em primeiro lugar, fica calmo… Ficar “upando” seu topico geralmente nao pega muito bem entre o pessoal…

Pra resolver seu problema, acredito eu, abra a classe Contato e sobrescreva o metodo toString():

...
 @Override
 public String toString(){
    return this.nome; // ou o atributo desta classe que voce quer que apareca na tela.
 }

Abraco.

M

opa funcionou…

eu não estava upando, estava realmente pedindo ajuda.

agora vou tentar ver como buscar os nomes depois do autocomplete completar, pq nao tem como eu usar id para passar o parametro para uma action
obrigado ae pela ajuda

Criado 17 de fevereiro de 2011
Ultima resposta 18 de fev. de 2011
Respostas 7
Participantes 4