我有一個註冊表單,我想在div中顯示一些消息。我爲此使用Ajax。令人困惑的事實是,在ajax塊中,它進入'錯誤'分支並顯示http statuts 200.可以這麼做嗎?提交事件在表單上。我應該戴上按鈕嗎?我怎樣才能解決它做我想要的?Ajax混淆http狀態
謝謝
這裏是我的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
從ajax調用中得到的迴應是什麼? –
提交事件屬於表單。 PHP響應應該在een echo語句中。 'echo json_encode(...)' – Daniel
響應是來自錯誤分支的數據。 – Alina