我有提交按钮的登录表单,它调用Javascript函数,在该函数中我用AJAX调用PHP文件。在PHP方面,我检查用户名,电子邮件和密码是否正确,然后我将结果返回到具有类Result的div。我需要返回PHP检查结果并在javascript中进一步操作,我的代码:
PHP:
if (isset($_POST['username_or_email']) && isset($_POST['password'])) {
$username_or_email = mysqli_real_escape_string($conn, $_POST['username_or_email']);
$password_post = mysqli_real_escape_string($conn, $_POST['password']);
$sql = "SELECT `password` FROM `users` WHERE `username` = '".$username_or_email."' OR `email` = '".$username_or_email."' LIMIT 1";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
/* Check if username or email exists */
if (mysqli_num_rows($result) > 0) {
echo "valid_user";
} else {
echo "invalid_user";
}
/* Check if password is correct */
if (password_verify($password_post, $row['password'])) {
echo 'valid_pass';
} else {
echo 'invalid_pass';
}
$conn->close();
}
JQUERY:
success: function (data) {
if (data == "invalid_user") {
$(".result").fadeIn(500).html("Incorrect username or email.");
}
if (data == "invalid_pass") {
$(".result").fadeIn(500).html("Incorrect password.");
}
if (data == "valid_pass") {
$(".result").fadeIn(500).html("Success, redirecting to account.");
setTimeout(function() {
document.location.href = 'nextpage.php';
}, 2500);
}
}
所以我的问题是:如果我在PHP端有几个IF语句,如何正确检查JQUERY端。在用户按下登录按钮后,我想显示用户名或密码是正确/不正确的,哪一个是正确/不正确的,只需用于信息目的。
答案 0 :(得分:1)
最好的方法是在PHP文件中创建一个元素数组,并存储您需要的所有信息。例如:
$info=array("user"=>"valid","password"=>"invalid");
然后,将数组转换为JSON字符串并简单地回显它:
echo json_encode($info);
一旦检索到数据,您可以通过将它们转换为像这样的元素的javascript数组来轻松地操作它们:
info=JSON.parse(data);
注意: PHP只能通过字符串与Javascript“通信”。 JSON Strings是实现此类结果的最常用方法,因为它简单。