Estou liberando hoje o novo release do meu script que é capaz de gerar sugestões no preenchimento de campos de texto.
Após as melhorias da versão 1.1 esta nova versão, a 1.2, traz poucas melhorias, mas permite ampliar o universo de aplicações onde este script pode ser utilizado, além de corrigir alguns erros enviados pelos usuários.
A melhoria principal foi projetada depois que comecei a escrever um artigo onde decidi focar nas diversas situações onde este script pode ser utilizado. Ao iniciar os trabalhos em um exemplo baseado no GMail, onde o usuário digita o email que deseja e o sistema vai indicando quais emails combinam com o texto, mostrando em negrito as partes que “combinam”. Porém para este efeito visual é necessário usar HTML, e o nome/email que precisamos usar depois precisa estar limpo, com isso foi adicionado um terceiro retorno no XML de resposta permitindo se ter um retorno estilizado e um texto puro.
Esta mudança foi realizada de forma a não quebrar a compatibilidade com as versões anteriores, portanto caso não necessite deste recurso, o uso segue como era antes.
Veja aqui o exemplo desta funcionalidade .
*Devido a falta do Driver Mysql do PDO o exemplo não esta funcionando, aviso quando resolver.
Vou dar mais detalhes e exemplos de uso em outro post, aguardem.
Além disso, após o retorno de alguns usuários sobre problemas com requisições múltiplas, for corrigido o algoritmo das requisições. Se o usuário digitasse rapidamente o script encontrava alguns erros, devido a requests AJAX antigos que não haviam terminado ainda.
Este problema foi corrigido com as sugestões dadas, e o algoritmo de detecção de resultado foi melhorado para o script atuar melhor quando nenhum resultado era encontrado.
Bug Reports
Além destas melhorias decidi organizar um pouco mais o processo de desenvolvimento e melhorar meu contado com os usuários, portanto implementei um software de gerência de projetos para acompanhar o processo.
Caso tenham encontrado algum bug, ou tenham alguma sugestão para dar, acessem o endereço abaixo e procurem no canto superior direito o link para cadastrar bugs e tasks. O acesso anonimo é aberto, então podem entrar sem problemas.
http://blog.rafaeldohms.com.br/dmsdev/index.php?go=projView&prj=5
Nesta interface vocês também terão a oportunidade de acompanhar o desenvolvimento por milestones e ver quais sugestões ou correções serão incorporadas em que versões, além de verificar todos passos e quando foram dados.
Obrigado a todos pelo feedback e por usarem o script, vou procurar melhorar ele ainda mais. Como sempre seguem os links:
Estou testando este recurso para uma pequena aplicação minha, muito bom.
Mas como tenho dedicado para aprender PHP, o Javascript estou apanhando um pouco.
E tenho duas coisas que gostaria de saber se tem como resolver.
1> NO IE, as opções trazidas pela função, ficou atras de um select opticon que tenho.
2> A pessoa tecla setinha para baixo, quando tecla ENTER o valor some, não seria possivel ao teclar ENTER o valor ser atribuido ao input??
Obrigado
E muito bom trabalho.
Nilson,
Vamos aos problemas:
1 – Esse problema do IE é um trauma, tem diversas soluções no Google, como botar o SELECT dentro de outro div e etc.. de uma olhada, minha solução é evitar o uso perto de SELECTs.
2 – Bom você pode fazer isso de diversas formas, mas vou anotar aqui para fazer isso de forma mais simples na versão 1.3.
Atualmente não existe um atributo que sete isso para “false”, mas você pode editar a linha 287 do script, comentando a linha, ou na função de retorno que é customizável, você pode adicionar algo como:
AC.elem.value = label;
Isso causará o valor a ser retornado ao campo.
Qualquer dúvida me avise.
Abraço
Blz Rafael, gostaria de parabenizar você primeiramente pelo excelente trabalho.
Bom implementei seus script em um trabalho meu mais notei que o mesmo tem um problema em questão a busca com palavras acentudas, será que você poderia me passar uma solução para isto.
Sandro,
Estou registrando o bug dos acentos no sistema e vou incorporar a solução no novo lançamento.
Abraço
aqui deu o seguinte erro no exemplo no arquivo dmsACd.php
domdocument() expects parameter 2 to be long
Warning: domdocument() expects parameter 2 to be long, string given in /var/www/vhosts/comparefacil.com/httpdocs/dms/dmsA1C.php on line 27
Deu esse erro no ao testar o exemplo
Tentei por um bom tempo e nao consegui! 🙂
Desde já agradeço pela ajuda!
Oi Rafael,
Parabens pelo Script, muito bom.
Estou com uma dúvida, tenho um XML com uma variavel keywords que traz as palavras que são parecidas com a palavra-chave informada na variavel. Como chamo esta pagina XML no seu aplicativo?
Abraços e sucesso!
Olá Rafael, muito obrigado pelo script.
Fiz algumas alterações e funcionou a acentuação:
Unifiquei a codificação dos arquivos, gravando-os em utf-8 e minha base também é utf-8. tirei as chamadas de rawurlencode e a lista aparece com todos os acentos, inclusive qdo digitamos.
Mudei as chamadas de bd pois estou utilizando PostgreSQL.
Fernando
Para resolver o problema com a mensagem:
Warning: domdocument() expects parameter 2 to be long, string given in /var/www/vhosts/comparefacil.com/httpdocs/dms/dmsA1C.php on line 27.
No windows tenha certeza que você removeu a extenção: php_domxml.dll.
Essa extenção quando ativa dá conflito com a classe DOMDocument que é interna do PHP agora.
Inclusive no repositório de packages na PECL não existem mais releases para essa extenção.
Portanto é só retirar a extenção que tudo funciona direitinho.
Gostaria de agradecer pois graças a este script consegui deixar meu comparador de preços http://www.comparefacil.com mais dinâmico.
Este mesmo problema aconteceu usando o Wamp server no Windows Vista. Minha versão do PHP é a 5.2.4 e a dll para uso do dom está habilitada no php.ini.
Ao executar esta linha:
$dom = new DOMDocument( ‘1.0’, ‘iso-8859-1’ );
Acontece o mesmo erro:
“Warning: domdocument::domdocument() expects parameter 2 to be long, string given in …”
Pesquisei todas as cocorrências no Google e até no http://bugs.php.net e NINGUÉM sabe a resposta para este problema!
Mas há uma luz no fim do túnel: usando o meu servidor do Ubuntu, também PHP 5.2.4 com Apache 2.x, o erro não ocorreu! Bizarro? Sim!
A solução é instalar novamente seu servidor PHP, mas evite usar esses softwares Wamp, Xamp, etc e instale na “unha” o PHP e o Apache que a chance desse erro não ocorrer será grande. Ou use Linux (muito melhor).
Marcio,
A seguinte dll não deve estar habilitada:
php_domxml.dll
pois ela é uma biblioteca alternativa à DOM que já vem habilitada.
Abraço
É verdade, Rafael, o Frederico Mottinha deixou bem claro isso no comentário anterior, foi vacilo meu ter passado pelo comentário.
Descomentei a dll no php.ini e acabou o conflito.
Vou inclusive documentar essa dica no projeto que acabei de colocar no Google Code (http://code.google.com/p/hrcv/) porque no instalador ele usa o objeto DOMDocument.
Valeu!
Opa, obrigado! =D
Estou tendo problemas para rodar esse código no Mac OS Leopard. Isso independe do navegador.
Acredito que tenha a ver com o servidor apache do leopard.
Quando a caixa é preenchida, no lugar de aparecer as sugestões programadas, aparece um erro “Could not find drive”.
Não entendi o que isso significa, alguma sugestão?
Gian,
O problema neste caso é o PHP, verifique que possui o PDO-MySQL habilitado, pois o script usa este driver, caso contrário altere o script php para usar outro diver de banco de dados que voce possua.
abraço
Descobri o problema com o Leopard.
Por default, o Leopard vem com Apache e PHP, mas o MySQL e quaisquer outros recursos precisam ser instalados separadamente. Um desses recursos é o suporte PDO para MySQL, que esse código precisa.
Estou querendo fazer um comparador de preços com captura de produtos pelo xml da loja. Quem estiver apto a desenvolver entre em contato!