我无法使代码正常工作并重定向到2个不同的页面,具体取决于信息是否正确...
到目前为止,我的登录页面上有以下内容:
$(function () {
$('#form').on('submit', function (e) {
e.preventDefault();
$.ajax({
type: 'post',
url: 'newfile.php',
data: $('#form').serialize(),
success: function (response){
alert(response);
if (success.text="Username or Password incorrect")
window.location.href = "index.php";
else if (success.text="login successful") {
window.location.href = "login_success.html";
} else {
}
}
})
})
我从中读取的信息是(从另一页):
<?php
// Create connection
$conn = new mysqli($servername, $username, $password, $database);
// Check connection
if ($conn->connect_error) {
die(" Connection failed: " . $conn->connect_error);
} else {
echo "Connected successfully";
}
$sql="SELECT myusername, mypassword FROM user WHERE myusername = '" . mysqli_real_escape_string($conn, $myusername) . "' and mypassword = '" . mysqli_real_escape_string($conn, $mypassword) . "';";
$result = $conn->query($sql);
if ($result->num_rows >0) {
echo "login successful";
} else {
echo "Username or Password incorrect";
}
$conn->close();
?>
最佳答案
我希望这对您有用,请尝试以下操作:
if (response=="usernames or Password incorrect") {
window.location.href = "index.php";
}
else if (response=="login successful")
{
window.location.href = "login_success.html";
}
else { }
在ajax成功中使用此代码。实际上,您在PHP中使用简单的ECHO,并在ajax成功中使用response.text。
更新:
您正在使用=符号进行比较,它应该是==运算符进行比较。
更新2:
我建议在PHP中使用status作为true false不是长字符串,例如:
if ($result->num_rows >0) {
echo true;
} else {
echo false;
}
比在ajax中的响应:
if(response == true){
// Success url
}
else {
// failure url
}