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 !