Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida Formulario


Maico_

Pergunta

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" />  
&lt;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 kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Isso ai não é java.

Seria na área de php.

O que você tem que fazer é deixar o action do seu form em branco e colocar o script php na área que você queira que apareça a mensagem:

<!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="" class="form" method="post" name="formulario" id="formulario" onsubmit="return validar();">
<input type="hidden" name="act" value="submit"/>
<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>

<?php

if(isset($_POST['act'])){

/* 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 = mail("maico_grando@g2midia.com.br" , "Contato Site", $mensagem , $headers);
if($mail){
echo 'enviou';
}else{
echo 'não enviou';
}
/*
Mensagem impressa na tela após o envio do formulário.
*/
}
?>

</body>
</html>

Link para o comentário
Compartilhar em outros sites

  • 0

primeiro você adiciona um input hidden no seu formulário para identificar quando o formulario foi enviado:

<input type="hidden" name="act" value="submit"/>
depois no php você verifica se existe a ação:
if(isset($_REQUEST['act']) && $_REQUEST['act'] == 'submit'){
/*
seu código
*/
}

E não se esqueça de tirar o action do form

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...