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
<!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>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.