javascript - передать объект по почте - PullRequest
11 голосов
/ 23 ноября 2010

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

var obj = { p1: верно, p2: верно, p3: ложно }

Я пытаюсь передать этот объект как часть почтового запроса.

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

[объект Объект]

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

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

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

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

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

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

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

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

Ответы [ 2 ]

23 голосов
/ 23 ноября 2010

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

$('#obj').val(jQuery.param(obj));
11 голосов
/ 23 ноября 2010

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

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

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

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

{ "p1" : true, "p2" : true, "p3" : false }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...