1

Тема: Збереження DOM елементу / елементів

В мене є певна DOM структура яка міняється за допомогою jQuery. Якщо більш детальніше то в мене є таблиця в яку динамічно додаються елементи div та input. Але після перезарузки сторінки ці елементи ( чомусь :)  ) не зберігаються, але мені необхідно їх зберегти бажано в базі даних. Хтось знає як це робити ?

2 Востаннє редагувалося virua (05.12.2012 12:36:55)

Re: Збереження DOM елементу / елементів

Ви динамічно змінюєте DOM модель (додаєте елементи в неї, видаляєте тощо), а тоді, наприклад, тиснете <F5> (оновити сторінку) чи переходите по якомусь лінку? Звісно ці зміни не збережуться! Це базові принципи веб-сторінок. Щоб зберегти їх можна використати:

а) AJAX і при кожній зміні елемента в DOM моделі, заносити непомітно для користувача дані в базу - http://api.jquery.com/jQuery.ajax/
б) Або ж можна огорнути таблицю в форму (елемент <form>) і внизу поставити кнопку, клік по якій відсилатиме POST/GET запит на сервер.

В обидвох випадках на сервері має бути написаний скрипт (напр., на PHP), який би заносив отримані дані в базу (напр., MySQL) - http://www.w3schools.com/php/php_mysql_insert.asp

І тільки тоді, коли ви будете показувати свою сторінку, її слід заповняти даними з цієї бази.

Подякували: miroslav.chandler, truesupport2

3

Re: Збереження DOM елементу / елементів

я би радив не юзати базу даних  а просто на сервері зберігати ваш html в файл (можна в json). Після перезавантаження сторінки завантажувати з потрібного файлу попередній стан вашої html таблиці.

Подякували: truesupport1

4 Востаннє редагувалося truesupport (08.12.2012 11:01:24)

Re: Збереження DOM елементу / елементів

Ви думали що я забув про цю тему а фіг вам :) Просто варіант проектування методом тику виявився дуже повільним.

virua, варіант номер один мені підходить точніше сказати підходив зробив майже так само а точніше так

function save_ui(name) {

    var workspace = $("#workspace").clone();

    workspace = { data: workspace.html(), name: name };
    $.post("/Home/SaveUI", workspace, null, "json");
    
}

function load_ui() {

    $.getJSON("/Home/GetUI", loadUI);
}