Ir para conteúdo

POWERED BY:

Arquivado

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

goncalves2345

Apagar os dados contidos no formulário depois que ele foi enviado

Recommended Posts

Olá, tudo bem com vcs? A questão e a seguinte aqui eu tenho dois exemplos fictícios um usando uma validação php e outro com jquery e ajax.

 

Eu só queria saber como eu faço pra apagar os campos, depois que o usuário receber a mensagem que os dados estão corretos quando ele enviar os dados e claro que no meu exemplo real quando acontece algum erro, eu deixo o que o usuário digitou pra ele saber o que estava errado e corrigir mas a minha dúvida e como fazer uma funçãozinha pra apagar os valores do campo input depois que o form for enviado e receber as mensagens que tudo estar correto.

 

 

Então e isso eu espero que vocês tenham ententido a minha dúvida, desde de já eu agradeço pela atenção!!

 

 

 

exemplo com o php:

 

arquivo form.php

<?php 
require_once("valida_form.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Form</title>
<style type="text/css">
<!--
#Mensagem {
position:relative;
width:709px;
height:30px;
z-index:1;
}
-->
</style>
</head>

<body>
<div id="Mensagem">
<p style="color:#000000;"><?php echo (isset($status)) ? $status : " " ?></p> <!--aqui eu retorno ás mensagens-->
</div>
<p> </p>
<form id="form1" name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']?>">
 <p> </p>
 <p>Nome: 
   <input type="text" name="nome" value="<?php echo (isset($_POST['nome'])) ? $_POST['nome'] : ""; ?>"/>
 </p>
 <p>
   <input type="submit" name="enviar" value="enviar" />
 </p>
</form>
</body>
</html>


 

arquivo valida_form.php

 

<?php

$nome=$_POST['nome'];

if (empty($nome)) {
$status="<p style=color:#FF0000>Digite o seu nome!!!</p>";
}
else{
$status="<p style=color:#000000>Olá $nome!!!</p>";
}

?>

 

exemplo2 ajax e jquery

 

arquivo form2.php

 

<?php 
require_once("valida_form.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script src="jquery.js" type="text/javascript"></script>  <!-- Importando os arquivos .js -->
<script src="jquery.validate.js" type="text/javascript"></script>
<script src="valida_form2.js" type="text/javascript"></script>

<title>Form2</title>
<style type="text/css">
<!--
#Mensagem {
position:relative;
width:709px;
height:30px;
z-index:1;
color:#000000;
}
-->
</style>
</head>

<body>
<div id="Mensagem">

</div>
<p> </p>
<form id="form2" name="form2" method="post" action="<?php echo $_SERVER['PHP_SELF']?>">
 <p> </p>
 <p>Nome: 
   <input type="text" name="nome" id="nome" value="<?php echo (isset($_POST['nome'])) ? $_POST['nome'] : ""; ?>"/>
 </p>
 <p>
   <input type="submit" name="enviar" value="enviar" />
 </p>
</form>
</body>
</html>

 

 

aruqivo valida_form2.js

 

            $(document).ready( function() {
               $("#form2").validate({				
                   rules:{  // Define as regras
                       nome:{
                           required: true, minlength: 3 // campoNome será obrigatorio (required) e terá tamanho minimo (minLength)
                       }
                   },
                   messages:{  // Define as mensagens de erro para cada regra
                       nome:{
                           required: "Digite o seu nome",
                           minlength: "O seu nome deve conter, no mínimo, 3 caracteres"
                       }
                   },
submitHandler: function(form) {  // Quando o formulário for enviado, essa função é chamada 
	var nome=$("#nome").val();  // Colocamos os valores de cada campo em uma váriavel para facilitar a manipulação 
	$("#Mensagem").html("<img src='loader.gif' alt='Enviado os dados!' /> Carregando..."); // Exibe mensagem de carregamento 
	// Fazemos a requisão ajax com o arquivo envia.php e enviamos os valores de cada campo através do método POST 
	$.post("envia.php", {nome: nome}, function(resposta) { 
			$("#Mensagem").slideDown(); // Quando terminada a requisição Exibe a div status  
			if (resposta != true) {  // Se a resposta é um erro
				// Exibe o erro na div 
				$("#Mensagem").html(resposta);
			} 
			else {  // Se resposta for false, ou seja, não ocorreu nenhum erro 
				//$("#status").html("Dados cadastrados com sucesso!"); 
				$("#Mensagem").html(resposta); // Exibe mensagem de sucesso 
				$("#nome").val(""); 


		}
});

}
}); 
});

 

arquivo envia.php

 

<?php
header("Content-Type: text/html; charset=ISO-8859-1",true);

$nome=$_POST['nome'];

echo "Olá $nome!!!";


?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

exatamente assim:

$("#nome").val(""); 

da forma que está no teu script.

 

qual a dúvida ? copiou esse codigo ai e não entendeu nada dele ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi a questão do ajax e porque ele não estava apagando os valores do campo:

 

e assim:

no meu arquivo js

if (resposta) { // Se a resposta é um erro

// Exibe o erro na div

$("#status").html(resposta);

}else

$("#status").html("Mensagem enviada com sucesso!!")

//limpa os valores da tela

$("#nome").val("");

}

 

logo no meu arquivo envia.php

if(tudo certo){

echo false; //vai mostra na div status Mensagem enviada com sucesso!!

}else{

echo "Aconteceu algum erro";

}

 

 

A questão e que eu já estava enviando ás mensagens de echo do arquivo envia.php por isso ele estava sempre caindo no if como estivesse tudo true que pro ajax seria como indicasse um erro, logo ele não limpava os valores da tela.

 

Agora teria como fazer um outro esquema para que o ajax recebesse ás mensagens tanto quando tivesse certo ou errado eu não precisasse enviar um echo false pra ele me mostra a mensagem correta na div. Eu queria enviar ás mensagens diretamente do arquivo envia.php.

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.