Ajax联系表单问题 – 没有发送电子邮件

对不起是一个菜鸟,但我正在努力。 我已经完成并阅读了我能找到的所有内容,但我从来没有这样做过。 真的很感激帮助。 表单id在html和javascript中匹配。 PHP在Javascript中链接,我在我的html的头部链接了javascript。 我错过了什么? 我已经尝试过我在网上找到的其他代码,但没有。问题是没有电子邮件发送过。 如果你点击发送页面重新加载,那就是它。

               

PHP

 = 5.2.0 if ( isset($_POST['email']) && isset($_POST['name']) && isset($_POST['text']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) ) { // detect & prevent header injections $test = "/(content-type|bcc:|cc:|to:)/i"; foreach ( $_POST as $key => $val ) { if ( preg_match( $test, $val ) ) { exit; } } //send email mail( "test@gmail.com", "Contact Form: ".$_POST['name'], $_POST['text'], "From:" . $_POST['email'] ); } ?> 

JS

  $('#contact').submit(function() { var name = $("#name").val(); var email = $("#email").val(); var message = $("#message").val(); var dataString = 'name=' + name + '&email=' + email + '&message=' + message; $.ajax({ type : "POST", url : "mail.php", data : dataString, cache : false, success : function() { $("#contact").fadeOut(300); $("#notice").fadeIn(400); } }); return false; }); 

谢谢。

也许你的js代码在jQuery加载之前运行。 尝试在其他js文件之前包含jQuery:

        

顺便说一句,你只需要包含一次jQuery,而不是两次。

你的textarea有一个name="message"而你在提交处理程序代码中寻找isset($_POST['text'])