Ajax令人困惑的http状态

时间:2017-06-17 14:30:53

标签: php ajax

我有一个注册表单,我想在div中显示一些消息。我使用Ajax。令人困惑的事实是,在ajax块中,它进入'error'分支并显示http statuts 200.可以这样做吗?提交事件在表单上。我应该按下按钮吗?我该如何解决它来做我想做的事?

谢谢

这是我的HTML

<form id="register" class="modall-content animate" action="register.php" method="post">
......
<div id = "error-reg"></div>
<div id = "success-reg"></div>
</form>

Php代码就是这个

if(isset($_POST['btn-rg'])) {
..
 if ($count == 0) {
    if ($check == 1)
        $query = "INSERT INTO ...";
    elseif ($check == 2)
        $query = "INSERT INTO ...";
    else {
        $query = "INSERT INTO ...";
    }

    if ($db->query($query)) {
        $success .= "Success";
        /*echo $success;*/
        echo json_encode(array("success" => $success));
    }

} else {
    $message .= "Username already exists";
     /*echo $message;*/
    echo json_encode(array("message" => $message));
}

/*$response = array();
$response['success'] = $success;
$response['errors']  = $message;
echo(json_encode($response));*/
}

我的js

$("#register").on('submit',function (event) {

event.preventDefault();
var dataPost= $('#register').serialize();
$.ajax({
    url: 'register.php',
    type: 'post',
    dataType : 'json',
    data: dataPost,
    success: function(data) {
        if (response.success) {
            $('#error-reg').hide();
            $('#success-reg').html(response.success).css('color','green');
        } else {
            $('#error-reg').html(response.errors);

        }
    },
    error: function (data) {
        console.log(data);
    }
});

});

当我提交时,这就是我得到的enter image description here

1 个答案:

答案 0 :(得分:0)

register.php右上角。

保留此代码,但将其注释掉。它会让您查看并确定其中包含的内容。

   // echo json_encode($_POST);
  //  exit;

你确实看到了$_POST['btn-rg'] ??? ---&GT;不!

您是否将HTML按钮声明为输入?

<input type='submit' name='btn-rg' value='Submit'>

现在取下面的行并将其放在if语句的顶部。我想确定我们进入这个声明。你应该期待看到&#34;你好世界&#34;试。

echo json_encode(array("message" => "hello world"));
exit;