无法编写PHP反馈表

时间:2016-04-18 06:14:46

标签: php ajax

我需要你的帮助。我有一个反馈表单,它将电子邮件发送到指定的邮箱。 这就是我的表单的样子:

<form method=post name="feedback"> 
<div>
     <div align="center"> 
              <input class="textarea1" type="text" name="name" placeholder="Name" autocomplete="off"> 
              <input class="textarea1"  type="text" name="email" placeholder="Email" autocomplete="off"> 
              <input class="textarea1" type="text" name="title" placeholder="Subject" autocomplete="off">
              <textarea class="textarea" rows="10" name="mess" placeholder="Message" autocomplete="off"></textarea><br />
              <input class="submit" type="submit" value="Send" name="submit"></div> 
</form> 
<img id="load" src="load.gif" style="display: none;" />
        <div id="answer"></div>

这就是我的脚本在html文件的头部看起来的样子:

<script type="text/javascript" src="jquery-2.1.1.min.js"></script>
<script type="text/javascript">
            $(document).ready(function() {
                $("#feedback").submit(function(event) {
                    event.preventDefault();
                    $.ajax({
                        url: "feedback_lib.php",
                        beforeSend: function() {
                            $("#load").fadeIn(400);
                        },
                        type: "post",
                        data: $("#feedback").serialize(),
                        success: function(answer) {
                            $("#answer").html(answer);
                        }
                    }).done(function() {
                        $("#load").fadeOut(400);
                    });
                });
            });
        </script>

这就是我的feedback_lib.php的样子:

<?php

    $email = $_POST["email"];
    $mess = $_POST["mess"];
    $title = $_POST["title"];
    $name = $_POST["name"];
    $result = 0;
    define(EMAIL_TO, "myrealmail@mymail.com");

    if ((strlen($email) < 5) or (strlen($message) < 10)) $result = 1; // длина сообщения
    else {
        if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
            $subject = "Письмо с Вашего сайта http://".$_SERVER["HTTP_HOST"]."/";
            $header = "From <".$email.">\r\nContent-type: text/plain; charset=utf-8\r\n";
            mail(EMAIL_TO, $subject, $mess, $title, $name);
            $result = 3; //письмо отправлено
        }
        else $result = 2; // неправильный email
    }
    echo getAnswer($result);

    function getAnswer($result = 0) {
        switch ($result) {
            case 0: $answer = "";
            break;
            case 1: $answer = "<p style='color: red;'>Հաղորդագրության նվազագույն երկարություն 10 նիշ, իսկ email-ինը` 5:</p>";
            break;
            case 2: $answer = "<p style='color: red;'>Սխալ email:</p>";
            break;
            case 3: $answer = "<p style='color: green;'>Հաղորդագրությունն ուղարկված է</p>";
        }
        return $answer;
    }

?>

我的问题是:为什么它不起作用? 哪里出错了? 谢谢你的回答。

1 个答案:

答案 0 :(得分:3)

在表单中使用feedback ID。

<form method=post name="feedback" id="feedback">
...........
...........
</form>