Top.Mail.Ru
Ответы
Аватар пользователя
5мес
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Не могу адекватно получить данные..

Друзья, объясните мне почему так происходит? и как быть?

в js я собрал массив и отправил его в php таким образом:

rez[i] = {i:i,id:id,val:val.value,key:key.value};
'rez':JSON.stringify(rez)

в php я получил данные так:
$rez = json_decode($_POST['rez']);
echo json_encode($rez[0]);

в консоле я получаю то что на скрине.

теперь когда я хочу получить к примеру id, я получаю в итоге null. выглядит это так:
$rez = array(), json_decode($_POST['rez']);
echo json_encode($rez[0][id]);

пробовал кавычки разные, ничего не помогло.. как так, я же получаю эти данные, почему не могу их обработать?

По дате
По рейтингу
Аватар пользователя
Высший разум
5мес

Если ты делаешь:

1
 $rez = json_decode($_POST['rez']); 

, то в $rez[0] у тебя объект и id получаем так:

1
 echo $rez[0]->id; 


А вот если ты делаешь:

1
 $rez = json_decode($_POST['rez'], true); 

, то в $rez у тебя массив и id получаем так, как ты и пытался сделать:

1
 echo $rez[0]['id']; 


Вот такое вот: $rez[0][id] (id без кавычек) - говнокод, который не надо использовать.

P.S. Чтобы посмотреть реальное содержимое $rez, используется:

1
 var_dump($rez); 


P.P.S. Если ты добавишь в начало PHP-скрипта:

1
 error_reporting(E_ALL); 

, то будешь получать (в логах PHP или в ответе сервера - в зависимости от других настроек) все ошибки и предупреждения. Это очень хорошо помогает и в улучшении качества собственного кода, и в поиске подобных ошибок. У тебя же, судя по всему, в настройках PHP уровень игнорирования ошибок и предупреждений задран до небес: проблемы есть, но ты их не видишь.