Javascript/PHP string equality -
i'm running ajax call has success function takes in variable returned php page so.
ajax:
$.ajax ({ type: "post", url: "loginrequest.php", data: 'username=' + username + '&password=' +pass, success: function(html){ console.log(html); // returns login console.log(typeof html); // returns string console.log(html === "login"); //returns false if(html === 'login'){ window.location.href = 'index.php'; } else if(html === 'false'){ alert("login failed"); } } });
php:
if($count == 1){ $_session['user'] = $myusername; $return = "login"; echo json_encode($return); } else { $return = "false"; echo json_encode($return); }
as can see i'm trying implement simple login page , redirect user or display alert depending on outcome of number of rows returned database query.
what don't understand this:
console.log(html); // returns "login" console.log(typeof html); // returns string console.log(html === "login"); //returns false
i tried echo-ing without json_encode()
, still give me same results. using ==
read it's safer use ===
switched still won't return true.
you're sending json, means you're sending literal bytes:
"login" "false"
note quotes in there. js code either needs decode json, or compare raw json itself:
result = json.parse(html) if (result == "login")
or
if (html == '"login"') // note quotes
a simple console.log(html)
have shown you're dealing with.
Comments
Post a Comment