Autocomplete com Busca Fonética (Zend FrameWork)
Bom Galera vamos pro meu Primeiro Artigo,
Vou Falar Sobre autocomplete do jQuery UI usando ZendFramework e usando
Soundex(busca Fonética),
exemplo de Soundex:
por um acaso você queira encontrar o jose mas você digitou joze o Soundex trata isso pela busca fonética
outro exemplo:
temos a palavra teste: você pode escrever tiest, text ….
isso é muito bom!
então vamos ao que interessa.
Download das Duas Ferramentas são encontradas aqui
jQuery UI – http://jqueryui.com/
Zend FrameWork – http://framework.zend.com/
Então Vamos aos Codigos:
html
Javascript
var cache = {}; jQuery(“#campoBusca”).autocomplete({ /* começar o autocomplete apartir da 3 caracter */ minLength: 3, source: function(request, response){ /*request.term responsavel por pegar oque foi digitado esse if verifica se ele ja esta em cache, pois cada vez que é digitado ele faz uma requisição ajax */ if ( request.term in cache ) { response( cache[ request.term ] ); return; } /*Requisição Ajax*/ jQuery.ajax({ url: “exemplo.php”, type: “POST”, dataType: “json”, /*Metodo passado para o php*/ data: “termo=” + request.term, success: function(data){ cache[ request.term ] = data; response( data ); } }); } }); },
Php – Zend
$array = array(); $exe = new Cliente(); $select = $exe->select() ->from(‘cliente’, array(‘cliNome’)) ->where(“SOUNDEX(cliNome) = SOUNDEX(‘{$_POST['termo']}’) OR cliNome LIKE ‘%{$_POST['termo']}%’”); $stmt = $select->query(); $clientes = $stmt->fetchAll(); for($i = 0; $i < count($clientes); $i++) { $array[] = $clientes[$i]['cliNome']; } /*Responsavel por Enviar o Array */ echo json_encode($array); exit;
Mysql – Busca Fonética
/*Sql com Busca Fonética*/ SELECT cliNome FROM cliente WHERE SOUNDEX(cliNome) = SOUNDEX(‘tiest’)
Simples, não!
SOUNDEX nativo do mysql, existe tambem para o php http://php.net/manual/en/function.soundex.php
proximo passo implementar levenshtein, Obrigado God Bless !