Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как загрузить данные из БД в jsPlumb (https://javascript.ru/forum/jquery/29983-kak-zagruzit-dannye-iz-bd-v-jsplumb.html)

seregarem 19.07.2012 22:52

Как загрузить данные из БД в jsPlumb
 
Подскажите, как загрузить элементы схемы в jsPlumb из БД, а потом сохранить обратно в БД? Как динамически добавлять объекты в jsPlumb?

hgirk 26.10.2012 23:15

очень актуальная тема. Жду ответ от PRO :)

DjDiablo 28.10.2012 14:29

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

предлагается создать свою модель, и менять её взависимости от событий. к примеру.
jsPlumb.bind("jsPlumbConnection", function(connectionInfo) {
     //обновляем модель при добавлении соединения
});

jsPlumb.bind("jsPlumbConnectionDetached", function(connectionInfo) {
       //обновляем модель при удалении
});


и это наверноее самое правильное решение.

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

извлечь эту инфу никакого труда непредставляет хотя бы при помощи jsPlumb.getConnections /jsPlumb.getAllConnections, пример использования


думаю по результату должно получится что то вроде
образец json
{
   // спиок нод
   nodes:[],
   // список соединений
   connections:[]
}

псевдокод сериализации и сохранения данных
function save(){
var presave={nodes:[],connections:[]}
$(".nodes").each(function(){
     presave.nodes.push( {
             x:$(this).offset().left,
             y:$(this).offset().top
             //другая инфа
     })
});
var conn=jsPlumb.getAllConnections();
for(var i=0;i<conn;i++){
     presave.coonections.push({
         target:conn[i].target...
         source:conn[i].source...
         //ещё какая то инфа 
     });
}
// здесь можно извлечь чонибудь полезное ещё, что именно решайте сами 
// в javascript практически всегда можно достать любые данные, исключения разве что переменные в замыканиях

$.post("url",presave);
}

Но хранить подобные данные в дум без модели, сомнительная идея.


Часовой пояс GMT +3, время: 11:54.