2017-08-29 77 views
0

服务器的一切工作完好,但只是这个简单的条件语句不工作出于某种原因。Jquery - Javascript does not执行一个简单的条件

$(document).ready(function() { 
    $("#logsubmit").click(function() { 
     var username = $("#username").val() 
     var password = $("#pwd").val() 

     $.post("functions/logincheck.php", { 
      username: username, 
      password: password 
     }, function(result) { 
      if (result == "success") { 
       window.location = "/"; 
      } else { 
       alert(result); 
      } 
     }); 
    }); 
}); 

即使被某种原因执行result == successelse声明。

php的scrippt

<?php 
session_start(); 
include '../connect.php'; 
$username = $_POST['username']; 
$password = $_POST['password']; 

$lgchk = $con->prepare("select uid, pass from userlogin where uname = :uname"); 
$lgchk->bindParam(':uname', $username); 
$lgchk->execute(); 

if ($lgchk->rowCount() > 0) { 
    while ($row = $lgchk->fetch(PDO::FETCH_ASSOC)) { 
     $pass = htmlentities($row['pass']); 
     $id = htmlentities($row['uid']); 
    } 
    if ($password == $pass) { 
     $_SESSION["myid"] = $id; 
     echo "success"; 
    } else { 
     echo "Incorrect Password"; 
    } 
} else { 
    echo "Account Doesnt Exist"; 
} 
?> 
+2

你确定'result' *是*成功吗? – Script47

+2

然后似乎很明显'结果'不等于'成功'。你需要调试它的原因。你确定它不是“结果”吗?试试'result.trim()=='success''。如果这样的话,我强烈建议你改变你的PHP来返回JSON,以避免空白错误,并正确使用布尔值,而不是丑陋的字符串比较。 –

+0

我可以保证你的结果是成功的,因为在其他警报中,我得到一个警告,说“成功”。 – reevkandari

回答

1

做这样的事情

$(document).ready(function() { 
 
    $("#logsubmit").click(function() { 
 
    var username = $("#username").val() 
 
    var password = $("#pwd").val() 
 

 
    $.post("functions/logincheck.php", { 
 
     username: username, 
 
     password: password 
 
    }, function(result) { 
 
     var r = result.trim(); 
 
     if (r == "success") { 
 
      window.location = "/"; 
 
     } else { 
 
      alert(result); 
 
     } 
 
    }); 
 
    }); 
 
});

使用trim方法&然后将其分配给其他变量。

希望这会帮助你。

+0

它像一个魅力工作感谢您的帮助....但我仍然无能为力,为什么发生..因为我没有返回任何额外的空间从PHP .. – reevkandari