Jump to content
Fórum Script Brasil
  • 0

Formulário sem refresh com jQuery/Ajax não tá funcionando.


mari_sanchesr
 Share

Question

Olá! estou tentando usar um script jQuery/Ajax pra carregar um formulário sem refresh da página e enviar os dados para o meu email, acontece que ao preencher o formulário e dar submit, retorna o erro de que o email digitado não é válido, mesmo você digitando o email corretamente.

Alguém sabe o que pode estar acontecendo?

Meu formulário:

<form id="formulario" method="post" action="javascript:func()">
   <table cellpadding="0" cellspacing="5px">
    <tr>
     <td>
      <input type="text" name="nome" id="nome" placeholder="NOME" required />
     </td>
     <td>
      <input type="email" name="email" id="email" placeholder="E-MAIL" required />
     </td>
    </tr>
    <tr>
     <td colspan="2">
      <textarea name="mensagem" id="mensagem" rows="20" placeholder="MENSAGEM" required></textarea>
     </td>
    </tr>
    <tr>
     <td colspan="2">
      <input type="submit" id="enviar" value="ENVIAR" /> 
     </td>
    </tr>
   </table>                
  </form>

O script que estou usando:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" language="javascript">
   $(function($) {
   $("#formulario").submit(function() {
     var nome = $("#nome").val();
     var email = $("#email").val();
     var mensagem = $("#mensagem").val();
     $("#statusform").html("<img src='img/ajax-loader.gif' alt='ENVIANDO' />");
     $.post('processa.php', {nome: nome, email: email, mensagem: mensagem}, function(resposta) {
         $("#statusform").slideDown();
         if (resposta != false) {
            $("#statusform").html(resposta);
         }
         else {
            $("#statusform").html("Sua mensagem foi enviada com sucesso. Peço que aguarde, em breve retornarei seu contato!");
            $("#nome").val("");
            $("#email").val("");
            $("#mensagem").val("");
         }
      });
   });
   });
</script>


*** #statusform é uma DIV que criei pra aparecer a resposta de confirmação de envio ou o erro de preenchimento. É onde estou recebendo o "Digite um e-mail válido!".

E a página de processamento:

<?php

// Destinatário:
$para = "[email protected]";
// Assunto:
$assunto = "Contato";
// Data de Envio:
$data_envio = date("d/m/Y h:i:s");

// Dados do Formulário:
$nome = $_POST["nome"];
$email = $_POST["email"];
$mensagem = "<strong>Contato:</strong> $nome ($email)<br />";
$mensagem .= "<strong>Mensagem: </strong>".$_POST['mensagem']."<br /><br />";
$mensagem .= "Enviado em $data_envio.";

$headers = "MIME-Version: 1.1\r\n"; 
$headers .= "Content-Type:text/html; charset=UTF-8\r\n";
$headers .= "From: $para\r\n";
$headers .= "Return-Path: $para\r\n";
$headers .= "Reply-To: $email\r\n";

if (empty($nome)) {
  echo "Você não digitou seu nome!";
  echo "nome:".$nome;
} 
elseif (!preg_match("^[a-zA-Z0-9\._-][email protected][a-zA-Z0-9\._-]+.([a-zA-Z]{2,4})$", $email)) {
  echo "Digite um e-mail válido!";
  echo "email:".$email;
} 
elseif (empty($mensagem)) {
  echo "Você não digitou sua mensagem!";
  echo "msg:".$mensagem;
}
else {
  $envio = mail($para, $assunto, $mensagem, $headers);
  if($envio) {
    echo false;
  }
  else {
    echo "A mensagem não foi enviada. Tente novamente!";
  } 
}

?>

Obrigada! =)

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...