提交带有ajax问题的表单

时间:2013-05-19 17:04:37

标签: php jquery ajax

我在提交此邮件表单时遇到问题。我可以获取要发送到.php文件的信息,但是电子邮件没有发送,任何人都可以帮助我吗?

这是jquery

$('form.contact').on('submit', function() {

  var that    = $(this),
      url     = that.attr('action'),
      type  = that.attr('method'),
      data    = {};

  that.find('[name]').each(function() {
      var that = $(this);
          name = that.attr('name');
          value = that.val();

      data[name] = value;
  });

  $.ajax({
      url: url,
      type: type,
      data: data,
      success: function(response) {
        console.log(response);
      }
  });

  return false;
});

这里是php

include 'config.php';

// Email Submit
if (isset($_POST['email']) && isset($_POST['name']) && isset($_POST['message'])){

   //send email
   mail(EMAIL_ADDRESS, "Contact Form: ".$_POST['name'],
   $_POST['message'], "From:" . $_POST['email']);

}

EMAIL_ADDRESS是由管理员设置的常量。

如果需要,这里是html

<div id="contact_form">
    <form action="admin/submit.php" method="post" class="contact">
        <input class="fullwidth" type="text" name="name" placeholder="Your Name" />
        <input class="fullwidth" type="email" name="email" placeholder="Email Address" />
        <textarea type="text" name="message" placeholder="Message"></textarea>
        <input id="submit" type="submit" value="Submit" />
        <div id="submit_triangle"></div>
    </form>
</div>

2 个答案:

答案 0 :(得分:0)

嗯,你的代码似乎很好。但是你在系统上安装了邮件服务器吗?如果有,请检查邮件服务器的设置

http://php.net/manual/en/function.mail.php表示如果邮件成功接受传递,则mail返回TRUE,否则返回FALSE。

重要的是要注意,仅仅因为邮件被接受传递,并不意味着邮件实际上会到达预定的目的地

答案 1 :(得分:0)

如果你能够将数据发送到.php,那么它必须是php方面你有困难。通过php.ini启用你的错误处理程序,它应该告诉你你有什么PHP问题。

在包含电子邮件功能的php文件中,在脚本的最开头添加以下行:

<?php
error_reporting(E_ALL); 
ini_set('display_errors', true);

//your exiting script //
?>

然后重新运行脚本,如果它仍然不起作用,php应该回应php问题供你调试。