在当前页面上执行Post方法

时间:2016-11-24 17:51:59

标签: javascript php html

我有这个表格,我发送邮件(通过发布方法):

<form method="POST" action="sendmail.php">
  <input type="text" name="sender_name" placeholder="Name" required="">
  <input type="text" name="sender_email" placeholder="Email" required="">
  <input type="text" name="subject" placeholder="Subject" required="">
  <textarea placeholder="Message" name="message" required=""></textarea>
  <input type="submit" name="send" value="SEND">
</form>

这里是sendmail.php

<?php
  if($_POST['send'] == 'SEND'){    
    $to      = 'queries@mydomain.com';
    $subject = $_POST['subject']; 
    $message = $_POST['message']; 
    $headers = "From: ".$_POST['sender_nam‌​e​']." <".$_POST['sender_em‌​ail‌​'].">\r\n"; $headers = "Reply-To: ".$_POST['sender_ema‌​il‌​']."\r\n"; 
    $headers = "Content-type: text/html; charset=iso-8859-1\r\n";
    'X-Mailer: PHP/' . phpversion();

    mail($to, $subject, $message, $headers);
  }
?>

正如您所看到的,在上面的代码中,我发送的邮件工作正常,但上述操作是通过离开当前页面来执行的

例如,在发布我的网址mydomain.com之后,它会变为mydomain.com/sendmail.php

那么如何在不离开当前页面的情况下执行上述功能呢?

3 个答案:

答案 0 :(得分:1)

你知道Ajax和jQuery吗?阅读更多内容,here

你的ajax电话看起来像这样。

    $.ajax({
      url: "yourApplication/methodWhichSendsEmail",
      type: "post",
      data:JSON.stringify({
           to : $to,
           subject: $subject,
           message: $message,
           headers: $headers
})

}).done(function() {
  //Whatever you want to do once the request is succeed. As you don't want to reload. i.e.
  alert("Email Sent");
});

答案 1 :(得分:1)

通过AJAX或您可以执行以下操作:

  1. 您在action=""
  2. 中指定<form>
  3. 您将代码从sendmail.php添加到index.php(或您的主页无论如何)

答案 2 :(得分:0)

您需要将表单操作设置为空。

然后在PHP代码中,您需要检查表单是否已发布。因此需要首先通过php function isset检查它然后你可以做你想做的任何事情,这只会在发布表格时发送电子邮件

  if(isset ($_POST['send']) && $_POST['send'] == 'SEND'){    
    $to      = 'queries@mydomain.com';
    $subject = $_POST['subject']; 
    $message = $_POST['message']; 
    $headers = "From: ".$_POST['sender_nam‌​e​']." <".$_POST['sender_em‌​ail‌​'].">\r\n"; $headers = "Reply-To: ".$_POST['sender_ema‌​il‌​']."\r\n"; 
    $headers = "Content-type: text/html; charset=iso-8859-1\r\n";
    'X-Mailer: PHP/' . phpversion();

    mail($to, $subject, $message, $headers);
  }