Ajax成功和错误不触发。数据正确保存在数据库中

时间:2018-11-13 14:26:14

标签: php jquery ajax

早上好, 我在调用ajax函数成功或错误时遇到一些问题。我的数据正确保存在数据库中。还有其他通过jquery控制DOM的方法吗?

我的form.php文件如下所示。

<?php
    // echo json_encode($_POST);
    $server = 'mysql:host=xxxxx;dbname=xxxxxxxxxxxx';
    $dbuser = 'xxxxxxxxxxx';
    $dbpass = 'xxxxxxxxxxx';


    try {
        $db = new PDO($server, $dbuser ,$dbpass);
    } catch (PDOException $e) {
        echo 'Connection failed: ' . $e->getMessage();
    }


    $query = $db -> prepare('INSERT INTO contact (namec,emailc,message) VALUES(?, ?, ?)');

    if($query->execute(array(json_encode($_POST['namec']), json_encode($_POST['emailc']), json_encode($_POST['message'])))) {
        echo json_encode(array('success' => true));
    } else {
        echo json_encode(array('success' => false));
    }

我的contact.js看起来像这样

$(document).ready(function () {
    $('#ContactForm').submit(function (e) {
        e.preventDefault();

        var that = $(this);

        $.ajax({
            url: that.attr('action'),
            type: that.attr('method'),
            dataType: 'json',
            data: that.serialize(),
            success: function () {
                if (res.success) {
                    console.log('ok');
                } else {
                    console.log('not ok');
                }
            },
            error: function (err) {
                console.log(err);
            }
        })
    })
})

提交后,我会在console.log上看到它 enter image description here

有人可以简要介绍一下吗?

1 个答案:

答案 0 :(得分:2)

您在success回调中缺少响应数据参数

success: function (res){
                 //^^^ is missing
     if (res.success) {
          console.log('ok');
     } else {
         console.log('not ok');
     }
}