February 27th 2007 10:15 am

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://www.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:

1 Star2 Stars3 Stars4 Stars5 Stars (9 votos, média: 4.11 de 5)
Loading ... Loading ...

19 Comments »

19 Responses to “dmsAutoComplete v1.2”

  1. Nilson Chagas on 06 Mar 2007 at 16:38 #

    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. Rafael Dohms on 06 Mar 2007 at 16:49 #

    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. Sandro on 13 Mar 2007 at 13:00 #

    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. Rafael Dohms on 16 Mar 2007 at 0:08 #

    Sandro,

    Estou registrando o bug dos acentos no sistema e vou incorporar a solução no novo lançamento.

    Abraço

  5. Ivan on 22 Mar 2007 at 15:50 #

    aqui deu o seguinte erro no exemplo no arquivo dmsACd.php

    domdocument() expects parameter 2 to be long

  6. Ivan on 22 Mar 2007 at 15:51 #

    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

  7. leandroac on 03 Apr 2007 at 18:41 #

    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!

  8. leandroac on 03 Apr 2007 at 18:44 #

    Tentei por um bom tempo e nao consegui! :-)

    Desde já agradeço pela ajuda!

  9. FernandoMora on 03 Apr 2007 at 20:50 #

    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

  10. dmsAutoComplete versão 1.3 on 24 Jul 2007 at 11:50 #

    [...] Post: versão 1.2 [...]

  11. Frederico Mottinha de Figueiredo on 15 Jan 2008 at 10:13 #

    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.

  12. Marcello on 04 Feb 2008 at 9:17 #

    Gostaria de agradecer pois graças a este script consegui deixar meu comparador de preços http://www.comparefacil.com mais dinâmico.

  13. Marcio Muzzi on 25 Mar 2008 at 16:46 #

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

  14. Rafael Dohms on 25 Mar 2008 at 17:09 #

    Marcio,

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

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

    Abraço

  15. Marcio Muzzi on 25 Mar 2008 at 17:18 #

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

  16. Gian on 06 Jan 2009 at 8:17 #

    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?

  17. Rafael Dohms on 06 Jan 2009 at 9:55 #

    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

  18. Gian on 06 Jan 2009 at 10:00 #

    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.

  19. Gian on 06 Jan 2009 at 10:01 #

    Opa, obrigado! =D

Trackback URI | Comments RSS

Leave a Reply

« Adote um Blogueiro | Livro: PHP-GTK – 2ª Edição »