Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Diegus Miestro

[Resolvido] Limpar POST's

Recommended Posts

Olá galera, bem estou com uma dúvida cuja solução não encontro.

 

Tenho um formulário de cadastro que quando dou submit ele passa os valores por POST e esses valores são salvos no Banco de Dados, porém o formulário aponta para a própria página e quando se dá um F5 ele passa novamente os valores e salva novamente no banco de dados. Gostaria de saber como eu zerar os valores da variáveis POST.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou assumir uma linguagem de servidor para a resposta: o PHP.

 

O valor do campo se dá pelo atributo value, certo?

 

Por definição, tal atributo é vazio. Se está preenchido é porque você o está mandando ficar preenchido.

 

Existe a possibilidade de, por exemplo, tal atributo estar assim:

 

<input type="text" id="name" name="name" value="<?php echo $_POST['name']; ?>" />

Ou algo similar, dependendo da forma como programou E da linguagem escolhida?

 

Isso diz ao browser para atribuir o valor de $_POST, variável superglobal com os dados submetidos via POST, (para quem não sabe).

 

Porém esse valor só estará presente após o envio do formulário, uma vez que ao acessar o mesmo pela primeira vez a requisição feita é do tipo GET.

 

Uma vez que o mesmo é enviado e tal valor existe, o campo estará preenchido. E ao teclar F5, o browser refaz a requisição de forma idêntica, isto é, também via POST.

 

Se é POST e existem dados, a ação do banco é reexecutada. E confiar no JavaScript para isso, é um erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem Bruno Augusto, em primeiro eu não estou atribuindo valor algum.

 

O usuário irá digitar os valores e clicar no submit e em seguida esses valores serão mandados ao servidor e a página sofrerá um refresh. Os campos estarão limpos, pois não tem nenhum valor no VALUE do FORM e se por acaso o usuário apertar F5 na página os valores do POST serão mandados de volta ao servidor pois eles continuam existindo mesmo após o refresh. O que quero saber é como me livrar desses valores que o navegador tem guardado e isso somente o JS pode fazer, uma vez que a linguagem servidor não tem acesso ao navegador.

Compartilhar este post


Link para o post
Compartilhar em outros sites

impossível.

 

não dá para "limpar" nem com js. Oq te indico fazer, é isso aqui:

http://wbruno.com.br/2011/06/15/diferenciar-refresh-f5-de-postsubmit/

Compartilhar este post


Link para o post
Compartilhar em outros sites

impossível.

 

não dá para "limpar" nem com js

Sério? Nem assim (jQuery-a-like):

 

$( document ).ready( function() {

   $( 'input' ).val( '' );
});

?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sério? Nem assim (jQuery-a-like):

nem assim.

pq o "valor" não está "na tag", mas sim nos headers temporários do navegador.

De nada adianta zerar o value, se oque o browser envia no F5 não é oq tá escrito lá. :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu William Bruno, esse tutorial que você me passou, mais um método que eu tinha desenvolvido deram o resultado que eu queria. Toda vez que for passado algo por POST a página sofre um refresh para o início fazendo assim com que tudo que foi passado por POST e GET seja perdido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.