У меня есть довольно сложная форма со многими "шагами" в нем, которые заполнены в пользователем. Некоторые шаги (думают о них как о сегментах формы) имеют опции по умолчанию, но при нажатии на "enter custom values", они отображают к настоящему документу скрытый набор полей, в которые пользователь может ввести информацию. Вот пример
Mode A
Mode B
Choose one of the above for applying average coefficient
values of "a" or "b" to 100% of your product or
enter custom values
%a: coeff. a
%b: coeff. b
Enter custom values above or
choose average values
Существуют несколько таких сегментов, например, #s1.. #s7. Вот моя задача. Я хочу позволить пользователю сохранить состояние формы. Так, после того как пользователь заполнил всю форму, выбрав средние значения по умолчанию для некоторых сегментов, и введя пользовательские значения для другого, пользователь может нажать кнопку и сохранить все состояние для размораживания позже. Я думаю, если я могу сохранить состояние в объекте, который я могу сериализировать, я могу сохранить его в таблице базы данных или некотором другом персистентном устройстве хранения данных.
Пользователь может возвратиться в более позднее время и восстановить всю предыдущую сессию.
Как я делаю это? Существует getAttributes сменный http://plugins.jquery.com/project/getAttributes, и существует jQuery, сериализируют метод, но я не могу ни за что в жизни начать. Пошагово переместите меня в правильном направлении.
19
задан punkish 8 August 2010 в 00:30
поделиться
Вы можете просто поместить данные, которые не являются данными по умолчанию, в json, а затем отправить их через почтовый запрос на сервер для сохранения.
Итак, как только человек возвращается на страницу, вы автоматически смотрите, есть ли у него что-то сохраненное, и вы можете либо спросить, хотят ли они это использовать, либо заполнить форму из сохраненных данных.
Сохранение значений по умолчанию - это пустая трата полосы пропускания, поскольку вы все равно не измените его форму, которая была на момент загрузки.
ОБНОВЛЕНИЕ:
Чтобы сохранить его как JSON, я думаю, было бы достаточно легко просто собрать его в длинную строку, так как формат прост, поэтому вы просто отправите все как одну строку.
Вы можете также сохранить этап, на котором они находятся, или автоматически сохранять при переходе к каждому этапу, что может быть лучшим вариантом, в случае сбоя компьютера им не придется снова запускать с самого начала, но вы можете захотеть, чтобы это было включено с помощью флажка, чтобы включить автосохранение.
Полагаю, вы ищете .serialize(), который сериализует данные формы
. Для этого ваши элементы input
должны находиться внутри тега form
, а также все они должны иметь атрибуты name
.
var form1data = $('#form1').serialize();
alert(form1data);