Como não gravar no histórico os campos memorizados no input

1,063 views
Skip to first unread message

Raphael Nunes

unread,
Sep 24, 2010, 12:48:25 PM9/24/10
to list...@googlegroups.com
Olá Pessoal,

Gostaria de saber se alguém conhece alguma solução para colocar no <input /> para que toda vez que digitar alguma coisa o navegador sugira as opção que já foram digitadas e memorizadas no histórico do navegador

Rubens Takiguti Ribeiro

unread,
Sep 25, 2010, 3:49:52 PM9/25/10
to list...@googlegroups.com
Raphael, isso é um problema do navegador (ele pode oferecer a opção de não dar sugestões). Mas existem algumas soluções que você pode usar para contornar o problema.

Uma solução simples, embora não oficial, é colocar o atributo autocomplete="off" no seu input de texto, mas nem todos navegadores implementam isso.

Uma outra solução, via PHP, é gerar o atributo "name" de forma randômica. Normalmente os navegadores gravam as sugestões de um campo de acordo com o name desse campo. Se você gera um name diferente a cada acesso à página, ele não vai dar sugestão por achar que é um campo diferente.

Daí você pergunta: se o campo tem name randômico, como vou pegar o valor dele pelo PHP? Neste caso, o que eu faço é enviar o name randômico através de um input hidden. Por exemplo, não queremos sugestão de CPF:

# Geração do formulário

// Gerar name randomico utilizando timestamp
$name = 'cpf'.time();

// Gerar input de texto com name randomico
echo '<input type="text" name="'.$name.'" value="" />';

// Enviar por hidden o valor do name gerado
echo '<input type="hidden" name="name_campo_cpf" value="'.$name.'" />';


# Recebendo dados do formulário
$name = $_POST['name_campo_cpf'];
$cpf = $_POST[$name];

Note que usar o time() é uma boa solução, já que a cada segundo ele muda. Isso evita que sejam gerados dois names iguais em momentos diferentes.

Rubens Takiguti Ribeiro
TecnoLivre - Cooperativa de Tecnologia e Soluções Livres
Bacharel em Ciência da Computação - UFLA
Zend Certified Engineer - PHP 5


Em 24 de setembro de 2010 13:48, Raphael Nunes <ran...@gmail.com> escreveu:
Olá Pessoal,

Gostaria de saber se alguém conhece alguma solução para colocar no <input /> para que toda vez que digitar alguma coisa o navegador sugira as opção que já foram digitadas e memorizadas no histórico do navegador

--
============================================================
LEIAM SEMPRE AS REGRAS DA LISTA:
http://groups.google.com.br/group/listaphp/web/regras-da-lista-php
--
LISTA PHP > http://groups.google.com.br/group/listaphp
--
REVISTA PHP > http://www.revistaphp.com.br
--
AJAX-BRASIL > http://groups.google.com/group/ajax-brasil
--
PYTHON-GOOGLE > http://groups.google.com.br/group/python-google
--
DOTNET-BRASIL > http://groups.google.com.br/group/dotnet_br
============================================================

Diego Campos

unread,
Sep 25, 2010, 4:33:49 PM9/25/10
to list...@googlegroups.com
autocomplete="off" ou ="no" não lembro ao certo

Em 24 de setembro de 2010 13:48, Raphael Nunes <ran...@gmail.com> escreveu:
Olá Pessoal,

Gostaria de saber se alguém conhece alguma solução para colocar no <input /> para que toda vez que digitar alguma coisa o navegador sugira as opção que já foram digitadas e memorizadas no histórico do navegador

--

Rubens Takiguti Ribeiro

unread,
Sep 25, 2010, 3:53:20 PM9/25/10
to list...@googlegroups.com
Ops, desculpe, li errado sua pergunta e respondi com as soluções de como NÃO dar sugestões.

Para dar sugestões, pode usar autocomplete="on" (alguns navegadores não suportam).

Ou pode implementar algo com Ajax. Quando ele digitar algo, faz a requisição assíncrona, recupera os valores cadastrados (em um BD, por exemplo), e devolve pro JavaScript montar uma caixa de sugestões, que pode ser feita com um campo <select> múltiplo.


Rubens Takiguti Ribeiro
TecnoLivre - Cooperativa de Tecnologia e Soluções Livres
Bacharel em Ciência da Computação - UFLA
Zend Certified Engineer - PHP 5


Reply all
Reply to author
Forward
0 new messages