Мой Аякса:Извлечение значений объекта json_encoded PHP из вызова ajax?
$.ajax(
{
type:'POST',
url: 'ajax.php', //the script to call to get data
data: {request: 'getUser',id:id},
dataType: 'json', //data format
complete: function(data) //on receive of reply
{
console.log(data);
}
});
Мой файл PHP, который обрабатывает запрос Ajax (ajax.php):
elseif ($_POST['request'] == 'getUser')
{
$DAO = new UserDAO;
$q = $DAO->ajaxGetUser($_POST['id']);
echo json_encode($q);
}
ajaxGetUser
функция:
public function ajaxGetUser($id)
{
$q = $this->db->prepare('SELECT * FROM user WHERE userId=:id');
$q->bindValue(':id', $id, PDO::PARAM_INT);
$q->execute();
$r = $q->fetch(PDO::FETCH_OBJ);
unset($r->userPassword);
return $r;
}
console.log(data)
показывает мне объект «ResponseJSON» на firebug, но когда я пробую что-то вроде console.log(data.userName)
, console.log(data[0].userName)
, они не определены, так как я n ot очень хорошо в ajax, я искал много потоков, но не мог найти тот, который мог бы мне помочь.
Я думаю, что json уже разобран, поскольку dataType
установлен в «json», как я могу получить доступ к объекту User со всеми его свойствами? Спасибо за вашу помощь
readyState 4
responseJSON
Object { userId="6", userName="321", more...}
responseText
"{"userId":"6","userName...":null,"userStatus":"0"}"
status 200
statusText "OK"
abort function()
always function()
complete function()
done function()
error function()
fail function()
getAllResponseHeaders function()
getResponseHeader function()
overrideMimeType function()
pipe function()
progress function()
promise function()
setRequestHeader function()
state function()
statusCode function()
success function()
then function()
Вы можете разместить выход из 'console.log (данные)'? – tymeJV