Как из формы вытянуть объект?

Через ajax передаю форму, у которой 2 элемента:
...
let form = new FormData();
form.append('id', '1');

let data = {"name":"John", "sex":"male", "age":"33"};
form.append('data', data);
...


Как в php вытащить объект?
var_dump($_POST["id"]);
// string(1) "1"
var_dump($_POST["data"]);
// string(15) "[object Object]"
var_dump($_POST["data"]["sex"]);
// string(1) "["
var_dump($_POST["data"] -> sex);
// NULL NULL
  • Вопрос задан
  • 55 просмотров
Решения вопроса 2
zkrvndm
@zkrvndm
Архитектор решений
Внутрь form.append() нельзя вторым параметром передать объект: можно передавать только строку или только файл, но не объект! Для отправки объектов на сервер вам нужно использовать JSON. И кстати, в вашем примере не хватает кода отвечающего за отправку формы.
Ответ написан
Комментировать
sslion
@sslion
Как писали выше, объект отправить ты не можешь, сделай так:
let data = {"name":"John", "sex":"male", "age":"33"};
form.append('data', JSON.stringify(data));


В php делай примерно так:
$data = json_decode($_POST['data']);
json_decode вернет или объект, или массив в зависимости от второго параметра
json_decode
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы