我发现了一个有趣的问题,来自JQuery的AJAX请求的回显值,我没有回答:
我的data == "LOCKED"永远不会返回true(第13行)!
JQuery - >点击按钮时调用AJAX:
$.ajax({ url: "ajax/login_ajax_call.php", method: "POST", data: { user: usr, password: pwd } }).done(function(data){ if(data == true || data == "true"){ // -> this works with data beeing true (bool) or "true" (string) $("#form_submit").submit(); } else{ console.log(jQuery.type(data)); // -> (string) console.log(data); // -> "LOCKED" console.log(jQuery.type("LOCKED")); // -> (string) if(data == "LOCKED"){ // also tried "===" but it never returns true [...] } else{ [...] } } }); });PHP (1) - >获取一个类返回的值(PHP(2)):
include_once("../Classes/Login_check.php"); $lih = new Login_check(); $result = $lih -> check($_POST["user"], $_POST["password"]); var_dump($result); // -> string(6) "LOCKED" echo $result;PHP (2,“Login_check.php”):
[...] // also tried: // $test = "LOCKED"; // var_dump($test); // -> string(6) "LOCKED" // return $test; return "LOCKED"; [...]如果您需要进一步的信息,请告诉我! 我希望有人知道导致这个问题的原因!
I discovered an interesting problem with an echoed value from an AJAX request of JQuery, which I don't have an answere for:
My data == "LOCKED" never returns true (line 13)!
JQuery -> AJAX call on button-click:
$.ajax({ url: "ajax/login_ajax_call.php", method: "POST", data: { user: usr, password: pwd } }).done(function(data){ if(data == true || data == "true"){ // -> this works with data beeing true (bool) or "true" (string) $("#form_submit").submit(); } else{ console.log(jQuery.type(data)); // -> (string) console.log(data); // -> "LOCKED" console.log(jQuery.type("LOCKED")); // -> (string) if(data == "LOCKED"){ // also tried "===" but it never returns true [...] } else{ [...] } } }); });PHP(1) -> gets a value returned by a Class(PHP(2)):
include_once("../Classes/Login_check.php"); $lih = new Login_check(); $result = $lih -> check($_POST["user"], $_POST["password"]); var_dump($result); // -> string(6) "LOCKED" echo $result;PHP(2, "Login_check.php"):
[...] // also tried: // $test = "LOCKED"; // var_dump($test); // -> string(6) "LOCKED" // return $test; return "LOCKED"; [...]Tell me if you need further informations! I hope anyone know what causes this problem!
最满意答案
必须是因为一些空格或新行,修剪data总是更好。 尝试这个:
if (data.trim() == "LOCKED") {您还可以使用:
if ($.trim(data) == "LOCKED") { // using jQuery.Must be because of some white-spaces or new lines, it is always better to trim the data. Try this:
if (data.trim() == "LOCKED") {You can also use:
if ($.trim(data) == "LOCKED") { // using jQuery.更多推荐
发布评论