Я создаю массив в php и отправляю в javascript через .getJSON (кодированный) ..

И когда я получаю его в моем javascript, он падает …

$response = array();
$a = 0;
$contacts[$a][0] = $c['contact'];
$contacts[$a][1] = $c['name'];
$contacts[$a][2] = $c['phone'];
$contacts[$a][3] = $c['phone2'];
$contacts[$a][4] = $c['email'];
$contacts[$a][5] = $c['active'];
$a  ;

$response['contacts'] = $contacts;
echo json_encode($response);

Я получаю эту ошибку: Uncaught TypeError: Cannot читать свойство ‘0’ из неопределенного

for (var i = 0; data['contacts'].length; i  ) {
var cont = data['contacts'][i][0];
var name = data['contacts'][i][1];
var p1 = data['contacts'][i][2];
var p2 = data['contacts'][i][3];
var email = data['contacts'][i][4];
var active = data['contacts'][i][5];

$("#cont_" pos).val(name);
$("#phone1_" pos).val(p1);
$("#phone2_" pos).val(p2);
$("#email_" pos).val(email);

}

Я использую функцию

, я получаю этот ответ из PHP: $.getJSON И с консольным журналом в javascript:

{"contacts": 
[["1","David1","32423423","234324","ddd@hotmail.com","1"], 
["2","David2","546567","68678767","dsasdas@hotmail.com","0"], 
["3","David3","345345","78987","3david@hotmail.com","0"], 
["4","David4","434d3455","978987","4david@hotmail.com","0"]]}

В вашем ответе, содержащем JSON, вероятно, отсутствует {* } заголовок, поэтому браузер не знает, как его преобразовать.

(4) [Array(6), Array(6), Array(6), Array(6)]
0: (6) ["1", "David1", "32423423", "234324", "ddd@hotmail.com", "1"]
1: (6) ["2", "David2", "546567", "68678767", "dsasdas@hotmail.com", "0"]
2: (6) ["3", "David3", "345345", "78987", "3david@hotmail.com", "0"]
3: (6) ["4", "David4", "434d3455", "978987", "4david@hotmail.com", "0"]
length: 4
__proto__: Array(0)

Убедитесь, что вы application/json сначала, а затем

, чтобы убедиться, что все соответствует ожиданиям, и только потом начинаете действовать в соответствии с ним var data = JSON.parse(data) Если вы использовали console.log(data) jQuery, убедитесь, что вы включили

в его параметры и тогда вам не нужно беспокоиться о синтаксическом анализе. $.ajax() Шаги, которые я обычно предпринимаю: dataType: 'json' на странице, которая выводит json

Непосредственно протестируйте страницу / конечную точку и убедитесь, что она возвращает только json, а не любые дополнительные строки, которые могут прийти из уведомлений PHP относительно объявления переменных (что ваш код подразумевает, что он выдаст уведомление, если вы не отключите error_reporting)

  1. header('Content-Type', 'application/json') Выведите данные на консоль, чтобы убедиться, что вы на самом деле имеете дело с объектом сейчас, а не со строкой JSON
  2. Если все еще строка {*** } сначала убедитесь, что вы
  3. конвертируете его в объект при условии, что json синтаксически корректен, что можно проверить, убедившись, что
  4. не вернул JSON.parse(data) Воспроизведение данных с использованием Javascript JSON.parse() javascript — Использование soundmanager2 с локальными файлами — переполнение стекаfalse
  5. Играйте с данными, используя Javascript