Fórum Limpar formulário após submit não funciona. #558411
20/06/2016
0
<?php
header('Content-type: text/html; charset=UTF-8');
if (isset($_POST)):
$para = "contato@volcanodigital.com.br";
$assunto = "Contato pelo Site";
$nome = (isset($_POST['nome']))? $_POST['nome']: '';
$email = (isset($_POST['email']))? $_POST['email']: '';
$telefone = (isset($_POST['telefone']))? $_POST['telefone']: '';
$msg = (isset($_POST['mensagem']))? $_POST['mensagem']: '';
// Valida se foram preenchidos todos os campos
if (empty($nome) || empty($email) || empty($telefone) || empty($msg)):
$array = array('tipo' => 'alert alert-danger', 'mensagem' => 'Preencher todo os campos obrigatórios(*)!');
echo json_encode($array);
else:
// Monta a mensagem do email
$mensagem = "<strong> Mensagem de Contato </strong><br><br>\n";
$mensagem .= "<br><strong>Nome: </strong>".$nome."\n";
$mensagem .= "<br><strong>Email: </strong>".$email."\n";
$mensagem .= "<br><strong>Tel: </strong>".$telefone."\n";
$mensagem .= "<br><strong>Mensagem: </strong>".$msg."\n";
// Envia o e-mail e captura o retorno
$retorno = EnviaEmail($para, $assunto, $mensagem);
// Conforme o retorno da função exibe a mensagem para o usuário
if ($retorno):
$array = array('tipo' => 'alert alert-success', 'mensagem' => 'Sua mensagem foi enviada com sucesso!');
echo json_encode($array);
else:
$array = array('tipo' => 'alert alert-danger', 'mensagem' => 'Infelizmente houve um erro ao enviar sua mensagem!');
echo json_encode($array);
endif;
endif;
endif;
// Função para envio de e-mail usando a função nativa do PHP mail()
function EnviaEmail($para, $assunto, $mensagem){
$headers = "Content-Type:text/html; charset=UTF-8/n";
$headers .= "From: $email Reply-to: $email/n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "X-Priority: 3\n";
$retorno = mail($para, $assunto, $mensagem, $headers);
return $retorno;
}<script>
$(document).ready(function () {
$('#contato').submit(function() {
var dados = $('#contato').serialize();
$.ajax({
type : 'POST',
url : 'envia_email.php',
data : dados,
dataType: 'json',
success : function(response){
$('#contato')[0].reset();
$('#resultado').css('display', 'block')
.removeClass()
.addClass(response.tipo)
.html('')
.html('<p>' + response.mensagem + '</p>');
}
});
return false;
});
});
</script>
<form id="contato" method="post" action="envia_email.php">
<ul>
<li class="first">
<a id="icone_nome" class="icones_contato"></a>
<input type="text" name="nome" class="text" placeholder="Nome" required>
<div class="clear"></div>
</li>
<li class="first">
<a id="icone_email" class="icones_contato"></a>
<input type="email" name="email" class="text" placeholder="email@example.com" required>
<div class="clear"></div>
</li>
<li class="first">
<a id="icone_telefone" class="icones_contato"></a>
<input type="tel" name="telefone" class="text" placeholder="45 1234-5678" required pattern="^\d\d\d$">
<div class="clear"></div>
</li>
<li class="second">
<a id="icone_mensagem" class="icones_contato"></a>
<textarea placeholder="Mensagem" name="mensagem" id="caixa_mensagem" required></textarea>
<div class="clear"></div>
</li>
</ul>
<input type="submit" value="Enviar" id="botao_enviar">
<div class="clear"></div>
<div id="resultado">
</div>
</form>Dalton Fuentes
Curtir tópico
+ 0Post mais votado
23/06/2016
Veja na imagem do inspecionar elemento testando no Hostgator a quantidade Warnings:
http://pt-br.tinypic.com/r/311xrtw/9
Coloque essa linha no topo do seu script PHP que envia o e-mail:
date_default_timezone_set("Brazil/East");
William
Gostei + 1
Mais Posts
20/06/2016
Carlos Ramos
Gostei + 0
21/06/2016
William
http://www.devwilliam.com.br/jquery/aprenda-como-debugar-ajax-sem-plugin
Gostei + 0
21/06/2016
Dalton Fuentes
Warning: Cannot modify header information - headers already sent by (output started at /home/volca246/public_html/envia_email.php:1) in /home/volca246/public_html/envia_email.php on line 2
{"tipo":"alert alert-success","mensagem":"Sua mensagem foi enviada com sucesso!"}
Desculpe-me, mas não sei muito de PHP suficiente ainda pra solucionar isso sozinho! Pode me ajudar por favor ?
Gostei + 0
21/06/2016
William
http://rubsphp.blogspot.com.br/2011/07/problemas-com-charset-nunca-mais.html
Gostei + 0
22/06/2016
Dalton Fuentes
Fiz um teste agora, peguei de novo um servidor grátis da HOSTINGER, e coloquei o mesmo site igualzinho que esta no HOSTGATOR. Enviei um e-mail pelo servidor grátis e deu tudo certo, apareceu o aviso de mensagem enviada com sucesso e o formulário foi resetado, tanto que apareceu essa mensagem agora :
{tipo: "alert alert-success", mensagem: "Sua mensagem foi enviada com sucesso!"}
mensagem
:
"Sua mensagem foi enviada com sucesso!"
tipo
:
"alert alert-success"
Dai fui enviar pelo site que esta hospedado no HOSTGATOR, e de novo da o mesmo erro e não faz essas duas funções ! Ele envia o e-mail certinho, só não reseta e nem mostra o aviso de mensagem enviada.
Não sei se tem algo a ver, mas dentro da minha pasta public_html, onde eu coloco o site, tem um arquivo chamado (error_log) que sempre fica la.
Não sei mais oque pode ser. Fiz tudo que seu ultimo link dizia!
Gostei + 0
22/06/2016
Dalton Fuentes
- dalton, seu formulário o botão enviar não esta funcionando...
- vc clica e ele não redireciona
- o botão não tem função ali
- tens que ver na tua programação
- pq ele não esta ativo
Este é meu form:
<form id="contato" method="post" action="envia_email.php">
<ul>
<li class="first">
<a id="icone_nome" class="icones_contato"></a>
<input type="text" name="nome" class="text" placeholder="Nome" required>
<div class="clear"></div>
</li>
<li class="first">
<a id="icone_email" class="icones_contato"></a>
<input type="email" name="email" class="text" placeholder="email@example.com" required>
<div class="clear"></div>
</li>
<li class="first">
<a id="icone_telefone" class="icones_contato"></a>
<input type="tel" name="telefone" class="text" placeholder="45 1234-5678" required pattern="^\d\d\d$">
<div class="clear"></div>
</li>
<li class="second">
<a id="icone_mensagem" class="icones_contato"></a>
<textarea placeholder="Mensagem" name="mensagem" id="caixa_mensagem" required></textarea>
<div class="clear"></div>
</li>
</ul>
<input type="submit" value="Enviar" name="enviar" id="botao_enviar">
<div class="clear"></div>
</form>
<div id="resultado">
</div>
Gostei + 0
22/06/2016
William
Gostei + 0
22/06/2016
Dalton Fuentes
<head>
<meta charset="utf-8">
<title>Teste</title>
<meta name="google-site-verification" content="1FWAcGm7Fa5u-yQJn6PHAYRxaUVi0HcqIDpLWeqsq8g" />
<link rel="shortcut icon" href="_imagens/favicon.png" type="image/x-icon">
<link rel="icon" href="_imagens/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="_css/index.css">
<link rel="stylesheet" type="text/css" href="_css/formulario_contato.css">
<script type="text/jscript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script type="text/jscript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script type="text/jscript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript" src="_js/script.js"></script>
<script>
$(document).ready(function () {
$('#contato').submit(function() {
var dados = $('#contato').serialize();
$.ajax({
type : 'POST',
url : 'envia_email.php',
data : dados,
dataType: 'json',
success : function(response){
$("#contato")[0].reset();
$('#resultado').css('display', 'block')
.removeClass()
.addClass(response.tipo)
.html('')
.html('<p>' + response.mensagem + '</p>');
}
});
return false;
});
});
</script>
<link href="https://fonts.googleapis.com/css?family=Roboto:400,300,500,700,900,100" rel="stylesheet" type="text/css">
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800" rel="stylesheet" type="text/css">
<link href="http://fonts.googleapis.com/css?family=Lato&subset=latin,latin-ext" rel="stylesheet" type="text/css">
<link href="https://fonts.googleapis.com/css?family=Raleway:100,200,300,400,500,600" rel="stylesheet" type="text/css">
<style type="text/css">
</style>
<script type="text/javascript">
$(document).ready(function() {
function filterPath(string) {
return string
.replace(/^\//,'')
.replace(/(index|default).[a-zA-Z]{3,4}$/,'')
.replace(/\/$/,'');
}
$('a[href*=#]').each(function() {
if ( filterPath(location.pathname) == filterPath(this.pathname)
&& location.hostname == this.hostname
&& this.hash.replace(/#/,'') ) {
var $targetId = $(this.hash), $targetAnchor = $('[name=' + this.hash.slice(1) +']');
var $target = $targetId.length ? $targetId : $targetAnchor.length ? $targetAnchor : false;
if ($target) {
var targetOffset = $target.offset().top - 85;
$(this).click(function() {
$('html, body').animate({scrollTop: targetOffset}, 1000);
return false;
});
}
}
});
});
// ]]></script>
</head>
Ta assim e ainda n vai !
Mas William, eu n intendo o pq no host gratis ele funciona, e no HostGator não.
Gostei + 0
22/06/2016
William
Gostei + 0
22/06/2016
Dalton Fuentes
<script type="text/jscript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
Deve ter escapado nos Ctrl+c Ctrl+v que estava dando quando trocava elas, mas enfim, esta com uma só e nao funciona !
Gostei + 0
22/06/2016
William
Gostei + 0
22/06/2016
Dalton Fuentes
HOSTINGER: http://volcanodigital.esy.es/
Gostei + 0
23/06/2016
Dalton Fuentes
[url]http://pt-br.tinypic.com/r/2unze5h/9[/url]
Da uma olhada porfavor.
Gostei + 0
23/06/2016
William
date_default_timezone_set("Brazil/East");
Gostei + 0
23/06/2016
Dalton Fuentes
Warning: Cannot modify header information - headers already sent by (output started at /home/volca246/public_html/teste/envia_email.php:1) in /home/volca246/public_html/teste/envia_email.php on line 4
{"tipo":"alert alert-success","mensagem":"Sua mensagem foi enviada com sucesso!"}
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)