Criei um formulário com validação em javascript, envio em php para e-mail, mas quando eu envio o formulário e vai para outra pagina dizendo que formulário foi enviado corretamente, gostaria de saber como faço para mensagem ser impressa na mesma pagina.
segue formulário abaixo
Html - JavaScript
<!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>
<title>CSS3 Form Demo</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="style.css" type="text/css" media="all" />
<script language=javascript>
function validar() {
var valido = false;
with(document.formulario) {
if (nome.value.length == 0){
valido = false;
nome.focus();
alert ("Campo nome obrigatório.");
}else if(email.value.length == 0 || email.value.indexOf('@')==-1 )
{
valido = false;
email.focus();
alert ("Preencha campo email Corretamente.");
}else if(assunto.value.length == 0) {
valido = false;
assunto.focus();
alert ("Campo assunto obrigatório.");
}else if(mensagem.value.length == 0) {
valido = false;
mensagem.focus();
alert ("Campo Mensagem obrigatório.");
}else {
valido = true;
submit();
}
return valido;
}
}
</script>
</head>
<body>
<form action="envio.php" class="form" method="post" name="formulario" id="formulario" onsubmit="return validar();">
<p class="name">
<label for="nome">Name:</label><br />
<input type="text" name="nome" id="nome" />
</p>
<p class="email">
<label for="email">E-mail:</label><br />
<input type="text" name="email" id="email" />
</p>
<p class="assunto">
<label for="assunto">Assunto:</label><br />
<input type="text" name="assunto" id="assunto" />
</p>
<p class="mensagem">
<label for="mensagem">Mensagem:</label><br />
<textarea name="mensagem" id="mensagem"></textarea>
</p>
<p class="submit">
<input name="Reset" type="reset" class="formobjects" value="Redefinir" id="redefinir"> <input type="submit" value="Enviar" />
</p>
</form>
</body>
</html>
Php ----
<?php
/* O \n é uma quebra de linha. */
$nome = $_POST['nome']."\n";
$email = $_POST['email']."\n";
$mensagem = "Nome : ".$_POST['nome']."\n\n";
$mensagem .= "Email : ".$_POST['email']."\n\n";
$mensagem .= "Assunto : ".$_POST['assunto']."\n\n";
$mensagem .= "Mensagem : ". $_POST['mensagem'];
/*
Função que envia para o seu email:
1 - Coloque o email que vai receber os dados do formulário;
2 - Coloque o titulo do email;
3 - Os dados do formulário.
*/
$headers .="From:$nome\r\n";
mail("maico_grando@g2midia.com.br" , "Contato Site", $mensagem , $headers);
/*
Mensagem impressa na tela após o envio do formulário.
*/
?>
<style>
#envio {width: 400px;
height:60px;
margin: 0 auto;
margin-top: 20px;
padding-top:30px;
text-align:center;
border: solid 1px #E5E5E5;
font: normal 14px/100% Verdana, Tahoma, sans-serif;
background:#FFFFFF;
background: -webkit-gradient(linear, left top, left 25, from(#FFFFFF), color-stop(50%, #EEEEEE), to(#FFFFFF));
background: -moz-linear-gradient(top, #FFFFFF, #EEEEEE 1px, #FFFFFF 25px);box-shadow: rgba(0,0,0, 0.1) 0px 0px 8px; -moz-box-shadow: rgba(0,0,0, 0.1) 0px 0px 8px;-webkit-box-shadow: rgba(0,0,0, 0.1) 0px 0px 8px;
}
</style>
<div id="envio">
<strong>Sua mensagem foi enviada com Sucesso!</strong><br />
<strong>Em breve entraremos em contato. Obrigado</strong>
</div>
Pergunta
Maico_
Olá pessoal,
Criei um formulário com validação em javascript, envio em php para e-mail, mas quando eu envio o formulário e vai para outra pagina dizendo que formulário foi enviado corretamente, gostaria de saber como faço para mensagem ser impressa na mesma pagina.
segue formulário abaixo
Html - JavaScript
formulário funciontato - > http://www.g2midia.com.br/enviored/contato.php
Editado por kuroiAdicionar tag CODE
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.