Можно ли отправить массив JavaScript вместе с отправкой формы? - PullRequest
2 голосов
/ 24 июля 2010

Я хотел бы создать форму списка для веб-приложения.Элементы добавляются, изменяются и удаляются из списка, и пользователь нажимает «Отправить», чтобы отправить список в веб-приложение для дальнейшей обработки.

Я хотел бы иметь два поля INPUT, которые я могудобавьте данные, нажмите кнопку «Добавить», и данные будут добавлены как в DOM (чтобы пользователь мог его увидеть, и удалить его, нажав кнопку «Удалить»), так и в массив JavaScript, который будет отправлен вместе сбольшая форма.Я не хочу никакого трафика в веб-приложение, пока список не будет построен.

Это выполнимо?Мой HTML немного заржавел, и я не держу в курсе последних библиотек JS.Существуют ли фреймворки, которые вы бы порекомендовали для этого, с примерами кода?

Ответы [ 2 ]

6 голосов
/ 24 июля 2010

Вероятно, самый простой способ сделать это - поместить массив значений в объект JSON, а затем внедрить этот объект как строковое значение в скрытый элемент формы.

Затем в коде на стороне сервера, в котором вы обрабатываете форму, вы сможете довольно легко декодировать объект JSON.Например, в PHP это простой процесс вызова json_decode().

3 голосов
/ 24 июля 2010

Конечно, вы можете сделать это.

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

После нажатия кнопки ОТПРАВИТЬ, поместите массив в скрытый ВХОД для отправки обратно на сервер.

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

Что касается фреймворка, то ответом по умолчанию будет jQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...