fabiapo 0 Denunciar post Postado Dezembro 11, 2009 Pessoal, Após submeter o formulário, todos os campos são limpos. Existe alguma forma, em javascript ou php, onde após submeter o formulário eu possa resgatar os dados informados e popular novamente em caso de erro? Obrigada! Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Dezembro 11, 2009 <input type="text" name="tal" value="<?php echo $var; ?>" /> sendo $var, a variável que guarda o valor que foi enviado desse campo.Depende de onde você processa o formulário. Como está o action="" ? pode trabalhar com SESSION, COOKIE.. Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Dezembro 11, 2009 Mas em que lugar voce quer fazer isso ? Na página de cadastro ? Compartilhar este post Link para o post Compartilhar em outros sites
fabiapo 0 Denunciar post Postado Dezembro 11, 2009 Outro detalhe: tentei fazer inserindo nos values dos campos $_REQUEST, porém, não consigo limpar os campos, caso seja necessário com o botão reset. Compartilhar este post Link para o post Compartilhar em outros sites
fabiapo 0 Denunciar post Postado Dezembro 11, 2009 William, O meu form está da seguinte forma: - Eu trabalho com um template onde o action do form aponta para a mesma página e no rodapé da página eu chamo a página PHP de tratamento que captura os dados via $_REQUEST. Se eu trabalhar com SESSION, como faço para limpar quando clicar no botão reset? Não há algum problema com a segurança dos dados? Obrigada! <input type="text" name="tal" value="<?php echo $var; ?>" /> sendo $var, a variável que guarda o valor que foi enviado desse campo.Depende de onde você processa o formulário. Como está o action="" ? pode trabalhar com SESSION, COOKIE.. Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Dezembro 11, 2009 Trabalhe, via $_POST, nao $_REQUEST. Dae se ouver um erro e tals... você coloca as variaveis que você pegou pelo POST e coloca no campo $nome = $_POST['nome']; <input type='text name='nome' value='<?=$nome?>'> Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Dezembro 11, 2009 como faço para limpar quando clicar no botão reset?O type="reset" retorna os campos para o valor default deles ne?!então nesse caso, o teu reset, terá que aplicar um: .value='' Não há algum problema com a segurança dos dados? ? onde ?São dados digitados pelo usuário, não sei bem como funciona 'interceptação' de seção.. mas não vejo nenhuma 'brecha' grave ai. Só um detalhe: $nome = $_POST['nome']; <input type='text name='nome' value='<?=$nome?>'> delimite os atributos HTML com aspas duplas. É uma 'boa prática', que pode evitar algumas dores de cabeça.evite: <?= prefira a tag completa: <?php essa diretiva(short_open_tag) não estará mais configurável nas próximas versões do php. $nome = $_POST['nome']; essa atribuição é totalmente desnecessária. <input type="text" name="nome" value="<?php echo $_POST['nome']; ?>" />Mas isso só funcionará, se estiver processando o form na mesma página(action=""), que acredito não ser o caso. Compartilhar este post Link para o post Compartilhar em outros sites
fabiapo 0 Denunciar post Postado Dezembro 11, 2009 e como sei em PHP que o botão reset foi pressionado? Qual o comando para identificar que o botão foi pressionado para que eu possa setar branco? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Dezembro 11, 2009 Crie uma função, outro botão. <input type="button" name="reset" value="Limpar" onclick="resetar_form()" /> <script type="text/javascript"> function resetar_form() { document....value=''; document....value=''; document....value=''; } </script> tem como melhorar isso, com laços.. Compartilhar este post Link para o post Compartilhar em outros sites
Holt 1 Denunciar post Postado Dezembro 11, 2009 Pelo que entendi seria esta a solução: (bem simples) Vou colocar o code de como fiz num cadastro: if($nomecpl == '' || $cpf == ''){ echo '<script>window.setTimeout("Funcao()", 5000);</script>' ; echo '<center>O campo nome e CPF são campos obrigatórios verifique o preenchimento <br />'; echo 'Esta página se auto-redirecinará em 5 segundos,<br /> se não deseja esperar, ou a página não se redirecionou clique'; echo ' <a href="javascript:history.back();">Aqui</a></center>'; sendo Funcao(): function Funcao() {history.back(1)}Tanto no caso da pessoa clicar no 'Aqui' ou esperar e redirecionar funciona corretamente... Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Dezembro 11, 2009 Ou function limpar() { var input = document.getElementsByTagName('input'); for(var i=0; i<input.length; i++) { switch (input[i].type) { case 'text': input[i].value = ''; break; } } } </script> <input type='button' onclick='limpa()'> Limpa tudo. Compartilhar este post Link para o post Compartilhar em outros sites
fabiapo 0 Denunciar post Postado Dezembro 11, 2009 Pessoal, Daí está o problema. Enquanto o valor do $_POST estiver populado e tentarmos limpar os campos, ele limpa mas volta a popular com o valor de $_POST. Já tentei isto uma vez e não funcionou. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Dezembro 11, 2009 ele limpa mas volta a popular com o valor de $_POST. ? como você tentou limpar? aplicou alguma das soluções em Javascript aqui apresentadas?se fizer corretamente, isso não vai acontecer. Compartilhar este post Link para o post Compartilhar em outros sites
fabiapo 0 Denunciar post Postado Dezembro 11, 2009 Fiz com solução JQUERY (javascript): Ao clicar no botão reset, eu faço assim: $("#campo").val(''); Mesmo assim, o valor volta para o campo, pois o formulário, em caso de erro, não foi submetido e ainda contém dados. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Dezembro 11, 2009 Sinceramente então, não entendi nada. O problema não era fazer o valor ficar no campo? Agora você o tem lá (eu acho), e um reset que funciona. E esse trecho: o formulário, em caso de erro, não foi submetido e ainda contém dados. ?não era esse o problema? submeter o formulário e perder os dados em caso de erro? por isso sugerimos preencher o value dos campos. E para o reset, fazer outro botão com Javascript. Não sei como te ajudar, está tudo muito confuso. O processo não ficou claro. E você até agora não postou nenhum código para testarmos, e ver o problema ocorrendo. Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Dezembro 12, 2009 Acabaram complicando o usuario com mais duvidas, e o botao reset serve para limpar os campos, nao pecisa criar nenhuma função para isso para garantir que os campos sempre fiquem preenchidos você deve pegar todos os campos e salvar em variaveis e setar no value de cada campo mas se for um simples cadastro sem muita importancia você pode usar o proprio javascript para manter os dados history.go(-1) Compartilhar este post Link para o post Compartilhar em outros sites
fabiapo 0 Denunciar post Postado Dezembro 14, 2009 William, existem dois problemas: - Primeiro: Ao enviar o formulário, se houverem erros no processamento das informações, os dados se perdem e o usuário terá que preencher os dados novamente - Segundo: Se tentarmos setar no value de cada campo o valor $_POST["valor"] de cada campo, se o usuário decidir apagar tudo e começar novamente, os dados permanecem setados e, se limparmos os campos com $("#campo").val('') os campos são limpos e em seguida populados novamente pois o valor $_POST ainda permanece preenchido com um valor. Não enviei o código pois trata-se de um formulário em HTML com FORM action igual a POST e capturamos os dados em outro arquivo que tem acesso ao banco de dados para processamento das informações submetidas. Achei que este era o padrão de um formulário PHP. Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Dezembro 14, 2009 Não sei como conseguem dificultar algo simples :natal_happy: Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Dezembro 14, 2009 - Segundo: Se tentarmos setar no value de cada campo o valor $_POST["valor"] de cada campo, se o usuário decidir apagar tudo e começar novamente, os dados permanecem setados e, se limparmos os campos com $("#campo").val('') os campos são limpos e em seguida populados novamente pois o valor $_POST ainda permanece preenchido com um valor. Para contornar este problema de o post aparecer preenchido, mesmo se ele clicar em reset, elimine a $_POST após preencher todos os campos.Veja que a $_POST não será mais necessária neste caso, porque se o usuário enviar novamente, ela vai ser reescrita. Então, utilizando o unset($_POST) deve resolver o seu problema. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
fabiapo 0 Denunciar post Postado Dezembro 14, 2009 Ok Matias, Funcionou. Apesar de ser simples, tem estes probleminhas que temos que pensar. Obrigada! Compartilhar este post Link para o post Compartilhar em outros sites