javascript-передать объект через post

у меня есть объект, который выглядит так

ВАР параметр obj = { Р1 : правда, Р2 : правда, Р3 : ложные }

Я ищу, чтобы попытаться передать этот объект как часть запроса post.

однако на другом конце (в php) все, что я получаю, это

[Object объект]

Как я могу отправить объект по почте?

в основном то, что я пытаюсь сделать, это

у меня есть вход, который скрыт и создается как так что

<input id="obj" type="hidden" name="obj[]">

, который является частью скрытой форме.

при нажатии кнопки у меня есть

$(#obj).val(obj);
$('form').submit();


Пожалуйста, не предлагайте использовать ajax, так как я должен сделать это таким образом, чтобы загрузить динамически созданный файл.

2 ответов


перед отправкой объекта необходимо сериализовать/преобразовать его в строку. Вы можете использовать jQuery.param() для этого.

$('#obj').val(jQuery.param(obj));

можно использовать JSON обозначение для отправки объекта на сервер. если вы включите JSON parser/renderer на странице (теперь он встроен во все современные браузеры, а также IE8 в стандартном режиме) вы можете преобразовать объект в строку, сохранив его полный граф объекта. На большинстве серверных языков теперь доступен синтаксический анализ JSON (в PHP это json_decode, например). Ты можешь положить эту струну в свой тайник. поля формы перед отправкой формы.

Это будет выглядеть так:

$('#obj').val(JSON.stringify(obj));
$('form').submit();

...и ваша серверная сторона увидит строку в виде

{ "p1" : true, "p2" : true, "p3" : false }