У меня есть проблемы с jquery. Почему возникает проблема с доступом к переменной в строке json?
$(function() {
var jqxhr = $.ajax({
type: "POST",
url: "test.php",
async: false,
cache: false,
timeout: 10000,
data: {
test: "test"
},
success: function(response) {
console.log(response); // {"login":"1","status_":0,"user":1}
console.log(response.login); //undefined
test = JSON.parse(response); // Uncaught SyntaxError: Unexpected token in JSON at position 2
console.log(test.login); //not work
},
complete: function(response) {
}
});
})();
test.php
require("config.php");
require("dbconnect.php");
$sth = $dbh->prepare('SELECT * FROM users WHERE email=?');
$sth->bindParam(1, $_POST["login"], PDO::PARAM_STR);
$sth->execute();
$user = $sth->fetch();
if(@$user['email']==$_POST["test"]) {
$json = json_encode(array("login" =>"1","status_"=>0, "user" => 1), JSON_UNESCAPED_UNICODE);
}
else {
$json = json_encode(array("login" =>"1", "status_"=>1, "user" => 1), JSON_UNESCAPED_UNICODE);
}
echo $json;
Это небольшой сценарий php, который возвращает единственную строку JSON по простому условию.
Если я не использую код ниже:
require("config.php");
require("dbconnect.php");
$sth = $dbh->prepare('SELECT * FROM users WHERE email=?');
$sth->bindParam(1, $_POST["test"], PDO::PARAM_STR);
$sth->execute();
$user = $sth->fetch();
, он работает и console.log (response.login) // возвращает 1), но если я использую соединение с базой данных, он не ' т. Почему?