我有一个注册表单,我想在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
答案 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;