user198003 user198003 - 5 months ago 23
jQuery Question

sortable - how to serialize their info with jQuery

Can not figure out how to get order (and more info if possible, like parent's div id) of the boxes sorted by:

http://jqueryui.com/demos/sortable/connect-lists.html

http://jqueryui.com/demos/sortable/portlets.html

I guess that there is something with serialize, but have no luck and knowledge to get things done...

Answer

i did find a solution; here is the answer:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>jQuery UI Sortable - Connect lists</title>
    <link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
    <script src="../../jquery-1.4.4.js"></script>
    <script src="../../ui/jquery.ui.core.js"></script>
    <script src="../../ui/jquery.ui.widget.js"></script>
    <script src="../../ui/jquery.ui.mouse.js"></script>
    <script src="../../ui/jquery.ui.sortable.js"></script>
    <link rel="stylesheet" href="../demos.css">
    <style>
    #sortable1, #sortable2 { list-style-type: none; margin: 0; padding: 0; float: left; margin-right: 10px; }
    #sortable1 li, #sortable2 li { margin: 0 5px 5px 5px; padding: 5px; font-size: 1.2em; width: 120px; }
    </style>
    <script>
    $(function() {
        $( "#sortable1, #sortable2" ).sortable({
            connectWith: ".connectedSortable"
        }).disableSelection();
    });
    </script>
</head>
<body>

<div id="test">


<ul id="sortable1" class="connectedSortable">
    <li class="ui-state-default" id="i1">Item 1</li>
    <li class="ui-state-default" id="i2">Item 2</li>
    <li class="ui-state-default" id="i3">Item 3</li>
    <li class="ui-state-default" id="i4">Item 4</li>
    <li class="ui-state-default" id="i5">Item 5</li>
</ul>

<ul id="sortable2" class="connectedSortable">
    <li class="ui-state-highlight">Item 1</li>
    <li class="ui-state-highlight">Item 2</li>
    <li class="ui-state-highlight">Item 3</li>
    <li class="ui-state-highlight">Item 4</li>
    <li class="ui-state-highlight">Item 5</li>
</ul>


  </div>

<input type="button" id="clickme" value="Serialize div" />

<script>
    $('#clickme').click(function () {
        $("#hold").html($('#test *').serialize());
        //alert($('#sortable2').serialize());

        var list = '';
        $('#sortable1 *').each(function() {
            list += $(this).attr('id') + ',';
        });
        alert('list = ' + list);

    });
</script>


</body>
</html>