dmsAutoComplete v1.2

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:

20 comentários sobre “dmsAutoComplete v1.2

  1. 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.

  2. 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

  3. 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.

  4. 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

  5. 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!

  6. 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

  7. 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.

  8. 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).

  9. Marcio,

    A seguinte dll não deve estar habilitada:
    php_domxml.dll

    pois ela é uma biblioteca alternativa à DOM que já vem habilitada.

    Abraço

  10. É 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!

  11. 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?

  12. 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

  13. 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.

Os comentários estão desativados.