【问题标题】:Multiple emails in Foundation 5 feedback formFoundation 5 反馈表中的多封电子邮件
【发布时间】:2015-02-21 10:12:03
【问题描述】:

我是一个非常初学者,但我已经设法为我的网站整理了一份反馈表。我遇到的问题是表单发送了 2 封电子邮件,而不是 1 封。对造成这种情况的原因有什么想法吗?

$('#myForm') 
    .on('valid.fndtn.abide', function () {
    var name = $("input#name").val();
    var email = $("input#email").val();
    var message = $("textarea#message").val();

    var dataString = 'name=' + name +
          '&email=' + email +
          '&message=' + message;

    $.ajax({
      type: "POST",
      url: "/contact/mail.php",
      data: dataString,
      success: function() {
        $('.contactform').html("<div id='thanks'></div>");
          $('#thanks').html("<h2>Thanks!</h2>")
          .append("<p>Dear "+ name +"!, We will get back to you as soon as we can.</p>")
          .hide()
          .fadeIn(1500);
      },
    });  //ajax call
    return false;
 });

PHP:

<?php

$name = $_POST["name"];
$email = $_POST["email"];
$message = $_POST["message"];

$msg = "

Name: $name
Email: $email
Comments:
$message
";

$to = "email@example.com";
$subject = "Website";
$message = $msg;
$headers = "Website";
mail($to,$subject,$message,$headers);

?>

【问题讨论】:

  • 我很惊讶它发送任何包含此内容的电子邮件:$headers = "Website";
  • 在 firefox 中运行类似 firrebug 的东西,你可以看到“/contact/mail.php”是否被命中或不止一次
  • 它被击中了两次。

标签: php contact-form zurb-foundation-5


【解决方案1】:

显然 Foundation 5 仍然包含来自先前版本“valid”与“valid.fndtn.abide”的旧调用函数,这导致它被调用两次。通过进行以下更改,我能够防止重复发送电子邮件:

$('#myForm') 
.on('valid.fndtn.abide', function (e) {
  if(e.namespace != 'abide.fndtn') {
    return;
  }
  var name = $("input#name").val();
  var email = $("input#email").val();
  var message = $("textarea#message").val();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 2014-05-28
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 2019-06-08
    • 2019-11-09
    相关资源
    最近更新 更多