我想使用模态通过php文件发送邮件,并且我希望在提交关闭后关闭pop

I want to use a modal to send mail, via a php file and I want the pop closed once submit is closed

本文关键字:我希望 提交 pop 模态 文件 php      更新时间:2023-09-26

我有一个简单的表单,一旦页面加载,它就会通过引导模式很好地加载。我想在点击提交后处理并发送,模态应该立即关闭,而不刷新页面。以下是我的代码。它不起作用。求你了,我需要帮助。使用php文件,它会发送邮件,但它会将我带到php文件,并被困在那里。我相信这是一件小事,但我无法理解。

$(function() {
  $(window).load(function() {
    $('#Modal').modal('show');
  });
   $('#btn_send').click(function(){
      var name  = $(":input[name='name']").val();
      var email = $(":input[name='email']").val();
      var varData = 'name=' + name + '&email=' +email; 
      $.ajax({
        type: 'POST',
        url: 'index.php',
        data: varData,
        success: function(){
            alert('Mail sent. Thank you.');
        }
    });
});
});
https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="" method="post" id="form_pp">
  <div id="Modal" class="modal fade in" tabindex="-1" role="dialog">
    <div class="modal-dialog modal-sm">
      <div class="modal-content">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span>
        </button>
        <div class="modal-header" style="margin-top:120px;">
          <div class="modal-body">
            <div class="form-group">
              <input class="form-control" placeholder="YOUR FULL NAME" name="name" type="text" required autofocus>
            </div>
            <div class="form-group">
              <input class="form-control" placeholder="YOUR EMAIL ADDRESS" name="email" type="email" required>
            </div>
            <br>
            <button type="submit" class="btn btn-default" style="color:#c13b01" id="btn_send">SEND</button>
            <button type="button" class="btn btn-default" style="color:#c13b01" name="send" id="btn_cancel" data-dismiss="modal">CANCEL</button>
          </div>
        </div>
      </div>
    </div>
  </div>

php file
if (isset($_POST['name']) && isset($_POST('email))) {
 $name = @trim(stripslashes($_POST['name'])); 
     $email = @trim(stripslashes($_POST['email'])); 
     $subject = "Results from Online contact form:'n'n";
    $email_from = $email;
    $email_to = 'mail@mail.com';
    $body = 'Name: ' . $name . "'n'n" . 'Email: ' . $email. "'n'n" . 'Subject: ' . $subject;
     @mail($email_to, $subject, $body, 'From: <'.$email_from.'>');
}
Leandro的回答是你成功的一部分。我想说php脚本不起作用的原因是,它没有收到任何提交的数据,因此无法发送电子邮件

为了从名称和电子邮件中检索数据,您需要更改显示的部分

var name = $("name").val();
var email = $("recipientmail@mail.com").val();

var name  = $(":input[name='name']").val();
var email = $(":input[name='email']").val();

这将帮助您将数据传输到服务器。

在@Eric Dohmen的帮助下,我发现我遗漏了电子邮件变量的引号和正确的块括号。这是:

if (isset($_POST['name']) && isset($_POST['email'])) {
 $name = @trim(stripslashes($_POST['name'])); 
     $email = @trim(stripslashes($_POST['email'])); 
     $subject = "Results from Online contact form:'n'n";
    $email_from = $email;
    $email_to = 'mail@mail.com';
    $body = 'Name: ' . $name . "'n'n" . 'Email: ' . $email. "'n'n" . 'Subject: ' . $subject;
    $success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>');
}
else{
    echo alert('Message did not send');
}
相关文章: