victory_vas
@victory_vas

Как отправить JSON с вложенными объектами/массивами по Ajax и распарсить это на сервере на PHP?

Всем привет.
Никак не могу понять, как передать мой объект на сервер и там его распарсить. Объект вида:
var data = {data: {
          name: '',
          birth_date: '',
          family_status: '',
          citizenship: '',
          country: '',
          area: '',
          register: {
            city: '',
            street: '',
            building: '',
            flat: ''
          },
          live: {
            reg: '',
            city: '',
            street: '',
            building: '',
            flat: '',
            flat_type: 'в личной квартире'
          },
          home_phone: '',
          mob_phone: '',
          skype: '',
          email: '',
          no_relatives: false,
          relatives: [
            {
              name: '',
              status: 'мать',
              birth_year: '',
              address: '',
              position: '',
              work: ''
            }
          ]
}}

Отправляю методом POST:
axios.post('demo.ru/ajax.php', data, {
                  headers: {
                    'Accept': 'application/json',
                    'Content-Type': 'application/json'
                  }
                })

Пытаюсь просмотреть на сервере:
<?
if (isset($_POST)) {
    $decodedArray = json_decode($_POST,true);
}
var_dump($decodedArray);
?>

Но ничего не выводится. Как я понимаю, проблема в виде тех данных, что я отправляю.
  • Вопрос задан
  • 511 просмотров
Решения вопроса 1
vanton
@vanton
Человек и пароход
<?php
if (isset($_POST)) {
    $json = file_get_contents('php://input');
    $decodedArray = json_decode($json, true);
}
var_dump($decodedArray);
?>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@frees2
<?php 
//print_r($_POST);
if (!empty($_POST[json_name])) { $json_data = $_POST['json_name'];$json = json_decode($json_data,true); $a = $json['name'];$b = $json['idtime'];
 if ($a !== false) {

var data = data: {
          name: '',
------------------
json_name="+data ;

Надо такую фиговинку прописать перед списком, с любым названием
json_name=
Ответ написан
Комментировать
@Brother79Mail
А зачем вообще декодить на стороне пхп? Попробуйте на стороне пхп написать print_r($_POST) судя по коду там должна быть ваша структура
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы