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 }