Im использует AJAX для запроса файла php, который возвращает JSON
$.ajax({ url: 'php/invoice.php', dataType: "json", data: {id: 1}, type: 'post', success: function(response) { alert(response); } });
В php-файле im используется эхо json через json_encode:
while($row = mysqli_fetch_assoc($result)) { $queryResults[] = $row; } echo json_encode($queryResults);
пример того, что php отправляет обратно:
[{ "ID": "1", "Firstname": "Brent", "Lastname": "Доу", "телефон": "888888888", "молния": "11111"}]
Что я получаю, когда я предупреждаю (ответ): «[object Object]»
Я хочу предупредить имя или любое другое свойство в json ie. "Brent"
Iv'e попробовал оповещение (response.firstname); и он возвращается как неопределенный.
iv'e также попытался удалить dataType: «json» из запроса ajax и просто проанализировать json, когда он возвращается через var obj = $ .parseJSON (response) и alert (obj.firstname)
Я не знаю, что я делаю неправильно, я также не знаю, почему там [] вокруг json, когда я использую json encode. Я предполагаю, потому что он возвращает массив из объектов json, которые могут быть моей проблемой? Я новичок в этом и буду признателен за любую помощь или ресурсы!
Я провела пару часов исследований и все еще не могу найти ответ. Заранее спасибо!
Проблема здесь (как отметил @echeese )
while($row = mysqli_fetch_assoc($result)) { $queryResults[] = $row; } echo json_encode($queryResults);
Обратите внимание, как выглядит JSON (обратите внимание на [..]
?)
[{"id":"1","firstname":"Brent","lastname":"Doe","telephone":"888888888","zip":"11111"}]
Это приводит к следующему:
0 => {"id":"1","firstname":"Brent","lastname":"Doe","telephone":"888888888","zip":"11111"}
и вам нужно получить доступ к нему следующим образом:
response[0].firstname
Проблема, с которой вы сталкиваетесь, заключается в том, что ваш ответ возвращает массив объектов. Вы должны иметь возможность получить имя с помощью response[0].firstname