Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: сохранить объект js на странице
 
 автор: Дмитрий Смаль   (09.11.2010 в 16:15)   письмо автору
 
 

Здравствуйте!

хочу сделать следующее

есть сложная вебформа, которая состоит из разных частей

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

появилась мысль "сохранять" введенные данные пользователем на странице путем конвертации значений введенных в форму в сроку и эту строку "хранить" на самой странице в виде кода в невидимом блоке (или текстареа, или даже в куках)

когда же нужно внести какие-то изменения в данные, то
- строка конвертируется в объект
- генерируется форма где есть часть данных из этой строки которые нужно редактировать
- после сохранения данных (в случае правильного заполенния) в форме изменяются значения объекта
- объект опять конвертируется в строку

таким же способом генерируется нтмл код для уже введенных данных

таким образом не нужно на странице держать скрытые формы и т.д.
генерация формы для редактирования или нтмл кода для вывода информации осуществляется на лету при необходимости

отправка данных на сервер будет только один раз в конце когда пользователь закочил работать с формами
на сервер будет посылаться данные в виде одной строки

для этого всего подходит формат JSON, так как с ним пхп работает тоже

но я не могу найти функций которые из объекта делают строку и наоборот в пределах одной страницы без запросов к серверу и т.д.

ищу способ аналогичен на пхп json_encode и json_decode

  Ответить  
 
 автор: АЯ   (09.11.2010 в 18:04)   письмо автору
 
   для: Дмитрий Смаль   (09.11.2010 в 16:15)
 

Совершено ничего не понял.

-----
Но могу дать общий совет.
С случае, когда "пошаговое заполнение формы должно изменять страницу" и Вы хотите делать всё это в браузере (не обращаясь к серверу), лучше всего ВООБЩЕ не иметь изначально тега <FORM> на странице.

Просто "рисуете" <input>, <textarea>, <select> в том количестве, кое Вам нужно и в том порядке появления, кое Вам нужно. Всем этим объектам НЕ НАЗНАЧАЕТЕ атрибут NAME, а обходитесь только и исключительно ID.

Когда все придуманные Вами пертурбации завершатся - всё, что нужно, юзер заполнит и всё, что нужно - исчезнет и появится, вот тогда появляется та самая ГЛАВНАЯ кнопка <input type="button">, по нажатию на которую запускается последний скрипт. Который сгенерирует коротенькую невидимую форму, где будут только <input type="hidden">, но уже с атрибутами NAME и с нужными значениями (взятыми из заполненных юзером элементов с ID) и просабмитит эту форму.

  Ответить  
 
 автор: sim5   (21.11.2010 в 22:04)   письмо автору
 
   для: Дмитрий Смаль   (09.11.2010 в 16:15)
 

Получить из объекта json формат, это примерно так:
//пусть это объект
var obj = {'a':['aa','bb'],'b':['cc','dd']};
//что-то добавляется в него по ходу
var u = 'ee';
var v = 'ff';
obj['c'] = [u,v];
//получаем json-формат
var key = 0;
var json = "{";
for(key in obj) {
  json += "'"+key+"':['"+obj[key].join("','")+"'],";
}
json = json.slice(0,-1)+"}";
//получаем объект из json
var s = "{'a':['aa','bb'],'b':['cc','dd']}";
var obj = eval('('+s+');');

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования