PHP没有阅读我的Ajax帖子。没有错误,只是空白文件

时间:2016-11-03 21:04:49

标签: php jquery ajax

我知道这只是通过Ajax发送到php文件的简单帖子。这是我以前做过的事情,但这次肯定有一些我想念的东西。我无法弄清楚为什么我的PHP文件不会读取或回显任何发布的数据。当PHP代码与表单位于同一文件中时,它可以正常工作,但是当我将PHP文件移动到外部源时,它就不再起作用了。所有数据都显示在标题中,但未被读取。

请求有效负载

name=Form+Name&email=myemail%40email.com&tel=2345557777&web=http%3A%2F%2Fmywebsite.com&msg=This+is+the+message Name

表单数据(回调不返回任何数据)

contact.on('submit', function(){
        var contactData = contact.serialize();
        console.log(contactData);
        return ajaxPost('mail.php', 'POST', contactData, (data) => {
            console.log(data);
            // Contact form callback
            alert('Thanks for contacting us!');
        });
    });

Ajax Post

var ajaxPost = function (x, y, z, callback){
    $.ajax({
        url: x,
        type: y,
        data: z,
        // encode: true,
        processData: true,
        contentType: false,
        dataType: 'html'

    }).done(() => {
        callback();
    });
    event.preventDefault();
};

PHP文件

 $name = $_POST['name'];
        $email = $_POST['email'];
        $tel = $_POST['tel'];
        $msg = $_POST['msg'];
        $web = $_POST['web'];
        $admin_email = "myemail@email.com";
        mail($admin_email, 'Name: ' . $name . " Email: " . $email, ' '. "Message: " . $msg . " Website: " . $web);
echo $name . $email . $tel;

HTML表单

<div class="form col-lg-6 col-md-6 col-sm-6 col-xs-12 text-center animated slideInDown">
        <form id="contact" name="contact-form" action="" method="post" datatype="multipart/form-data">
            <h3 class="text-center">Drop us a line</h3>
            <fieldset>
                <input placeholder="Your name" name="name" type="text" tabindex="1" required autofocus>
            </fieldset>
            <fieldset>
                <input placeholder="Your Email Address" name="email" type="text" tabindex="2" required>
            </fieldset>
            <fieldset>
                <input placeholder="Your Phone Number (optional)" name="tel" type="text" tabindex="3" required>
            </fieldset>
            <fieldset>
                <input placeholder="Your Web Site (optional)" name="web" type="text" tabindex="4">
            </fieldset>
            <fieldset>
                <textarea placeholder="Type your message here...." name="msg" tabindex="5" required></textarea>
            </fieldset>
            <fieldset>
                <button type="submit" id="contact-submit">Submit</button>
            </fieldset>
            <a id='number-attn' class="glyphicon glyphicon-phone" href="tel:5555555555">&nbsp;5555555555</a>
        </form>
    </div>
</div>

2 个答案:

答案 0 :(得分:0)

我仍然不确定为什么其他方式不起作用,但是我使用FormData对象获取了我的PHP文件。

{{1}}

进行此更改允许PHP脚本读取提交的表单。

答案 1 :(得分:0)

删除选项&#34; contentType:false&#34;来自ajax post。