使用jquery,ajax和mailer php脚本的联系表单在单击提交时不执行任何操作

时间:2015-04-21 06:39:37

标签: javascript php jquery ajax forms

我的网站上有一个联系表单,当用户输入信息并点击提交时,我正在尝试实现发送到电子邮件功能。因此,理想情况下,联系表格中的信息应在提交后通过电子邮件发送给我。我正在尝试实现的是使用jQuery,AJAX和我从这里的教程获得的PHP邮件程序脚本:http://blog.teamtreehouse.com/create-ajax-contact-form

问题是,当我点击提交时,没有任何反应,没有任何重定向,说明有错误或告诉我它是成功的。唯一要做的就是清除表单字段。我在该网站的评论中读到了邮件程序脚本需要某个版本的PHP,但我对PHP和后端开发并不熟悉。我知道有些东西不见了,只是不确定是什么。似乎缺少某些通信,我没有收到任何javascript错误。所有id和name属性都匹配我的.html,.js和.php文件。文件也会上传到Bluehost(目前托管网站的位置)。我是否需要在Bluehost中的某处安装新的PHP版本?任何帮助表示赞赏。谢谢!

$(document).ready(function(e) {
//e.preventDefault();
$("button").click(function(e) {

    var ajax = {
        isSubmitting: false,
        send: function() {
            if(ajax.isSubmitting == false) {

                ajax.isSubmitting = true;
                var userName = $("input [name=contact-name]"); 
                var userEmail = $("input [name=contact-email]"); 
                var userWebsite = $("input [name=contact-website]"); 
                var userMessage = $("input [name=contact-message]"); 

                if(userName === "" || userEmail === "" ||     userWebsite    === "" || userMessage === "") {
                    alert("Please fill out all required fields.");
                } 
                else {
                    $.post("mailer3.php", {
                        name: userName,
                        email: userEmail,
                        website: userWebsite,
                        message: userMessage

                    }, function(data) {

                        ajax.isSubmitting = false;

                    });
                }
            }
            else alert("Send only 1 email at a time.");
        }
    }

});
});

PHP

<?php

//PHP Mailer Script
if(count($_POST) > 0) {
    $name = $_POST['name'];
    $email = $_POST['email'];
    $website = $_POST['website'];
    $message = $_POST['message'];

    $header = "Content-Type: text/html\r\nReply-To:: $email\r\nFrom: $name <$email>";

    $body = 
    @"Email sent from ".$_SERVER['REMOTE_ADDR']." at ".date("d/m/Y     H:i",time())."<br />
    <hr />
    $message
    <hr />
    Email end";

    if(mail("andrew@ajcwebcreations.com", "You have a new message.", $message, $header)) {
        die("true");
    } else {
        die("Error sending message.");
    }
}


?>

安德鲁

1 个答案:

答案 0 :(得分:0)

从头开始并收到要发送的电子邮件,但输入信息仅包含在电子邮件中。如果我无法弄明白,也许会针对该问题发布另一个问题。感谢所有花时间添加输入的人!