javascript - Ajax 不将数据发送到 PHP 文件

标签 javascript php jquery ajax

我编写了这个脚本,它不会将数据从 AJAX 发送到 PHP 文件。在运行 AJAX 函数之前,我通过记录表单中的数据来对其进行调试。它给了我这些数据:

Form: name=jim&email=info%40test.com

但是,我收到了一个空警报,并且收到了一封空电子邮件。

HTML

<form name="form" id="form" class="form" method="post">
    <input type="text" class="text border" name="name" id="name" placeholder="Name" />
    <input type="text" class="text" name="email" id="email" placeholder="E-mail" />
    <input type="submit" class="button" value="Submit" />
</form>

JS

jQuery(function(){
        jQuery('#form').submit(function(event){
            event.preventDefault();
            jQuery.ajax({
                type: "POST",
                url: "includes/post.php",
                data: jQuery('#form').serialize(),

                success: function(data){
                    jQuery("#form").addClass("inactive");
                    jQuery("#message").addClass("active");
                    alert(data);
                }                   
                });
            });
    });

PHP

<?php

    if ($_SERVER["REQUEST_METHOD"] == "POST") {

        $name   =   mysql_real_escape_string($_POST["name"]);
        $email  =   mysql_real_escape_string($_POST["email"]);

        $to = "test@hidden.com";

        $message = '

        <html>
        <body>
        <p>
        <strong>Name: </strong> '.$name.' <br/>
        <strong>E-mail: </strong> '.$email.' <br/>
        </p>
        </body>
        </html>

        ';

        $subject = 'New entry: '.$name.', '.$email;
        $headers .= "From: ".$name." ".$$email."\r\n";
        $headers .= "X-Mailer: PHP's mail() Function\n";
        $headers .= "MIME-Version: 1.0\r\n";
        $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";;

        mail($to, $subject, $message, $headers);

    }

?>

最佳答案

尝试下面的代码,

使用以下内容更新您的 PHP,

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = htmlspecialchars($_POST["name"]);
    $email = htmlspecialchars($_POST["email"]);
    echo $name;// this will see in your response
    $to = "test@gmail.com";
    $message = '

        <html>
        <body>
        <p>
        <strong>Name: </strong> ' . $name . ' <br/>
        <strong>E-mail: </strong> ' . $email . ' <br/>
        </p>
        </body>
        </html>

        ';
    $subject = 'New entry: ' . $name . ', ' . $email;
    $headers = "From: " . $name . " " . $email . "\r\n";
    $headers.= "X-Mailer: PHP's mail() Function\n";
    $headers.= "MIME-Version: 1.0\r\n";
    $headers.= "Content-Type: text/html; charset=ISO-8859-1\r\n";;
    mail($to, $subject, $message, $headers);
}

关于javascript - Ajax 不将数据发送到 PHP 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32809364/

相关文章:

javascript - 获取div jquery的高度

javascript - 带有响应数组 [] 的 jQuery Ajax PHP POST 方法已发送数据。如何获得响应中的发送值?

php - 按保留键排序并保留值顺序?

javascript - jquery中的filter和map有什么区别

PHP:一种存储登录尝试次数的方法?

php - 如何将多个值插入到具有不同行的一列中?

javascript - 如何使用asp.net获取jquery select2标签列表的值?

jquery - 如果父元素包含元素,则向元素添加类

javascript - List.js 在 Chrome 中无法正确排序

JavaScript 计算器 : issues with program not reading secondnumber