Rails - как сериализовать дерево не в форме - PullRequest
0 голосов
/ 04 мая 2010

Я начал со стандартного скриптового дерева перетаскивания, и все это прекрасно работает.

Затем начали реализовывать это: http://www.artweb -design.de / 2008 / 5/30 / Scriptaculous-sortabletree который дает хорошее перетаскивание дерева

Где я застрял, как получить сериализацию дерева (неупорядоченный список)? Он не в форме, и я не могу найти способ его сериализации, чтобы перейти к настройке обновления AJAX.

1 Ответ

0 голосов
/ 13 мая 2010

Хорошо, вот ответ, который я разработал, на случай, если кто-то еще столкнется с этим. Конечно, есть лучший способ сделать это и т. Д.

function walk_tree(node, parent_stem, at_root ) {

    if ( node == null || node == undefined || $(node) == undefined )
        return ;

    var i = 0 ;
    var serialized_tree = '' ;
    var stem = '' ;

    // loop through siblings
    do {

        // build up the serialized statement for this node
        stem = parent_stem + '[' + i + ']' ;
        serialized_tree += (at_root ? '' : '&' ) + stem + '[id]=' + $(node).identify().gsub('page_','')

        // if node has children, then recurse...
        if ( $(node).down('li') != undefined )
            serialized_tree += walk_tree($(node).down('li'), stem, false) ;

        // carry on finding siblings
        node = $(node).next('li') ;
        i++ ;
    } while ( $(node) != undefined ) ;

    return(serialized_tree) ;

} ;
...