保存排序顺序并填充已排序的记录jquery UI可排序

时间:2013-02-18 05:57:28

标签: php jquery jquery-ui jquery-ui-sortable

您好我正在使用jquery ui sortable对我的div进行排序。我可以得到保存在数据库中的div,这是我的代码

<div style="margin:0 auto !important;">
    <ul id="sortable1" class="connectedSortable">
        <li id="one_1" class="ui-state-default"><div>Item 1</div></li>
        <li id="one_2" class="ui-state-default"><div>Item 2</div></li>
        <li id="one_3" class="ui-state-default"><div>Item 3</div></li>
        <li id="one_4" class="ui-state-default"><div>Item 4</div></li>
        <li id="one_5" class="ui-state-default"><div>Item 5</div></li>
    </ul>

    <ul id="sortable2" class="connectedSortable">
        <li id="two_1" class="ui-state-highlight"><div>Item 1</div></li>
        <li id="two_2" class="ui-state-highlight"><div>Item 2</div></li>
        <li id="two_3" class="ui-state-highlight"><div>Item 3</div></li>
        <li id="two_4" class="ui-state-highlight"><div>Item 4</div></li>
        <li id="two_5" class="ui-state-highlight"><div>Item 5</div></li>
    </ul>
</div>



<script type="text/javascript">
  jQuery(function() {

    var sortable1 = 'one_1,one_2,one_3,one_4,one_5';
    var sortable2 = 'two_1,two_2,two_3,two_4,two_5';

    jQuery( "#sortable1, #sortable2" ).sortable({
        update: function(event, ui) {

            var newOrder = jQuery(this).sortable('toArray').toString();
            if(jQuery(this).attr('id')=="sortable1"){
                sortable1 = newOrder;
            }
            else {
                sortable2 = newOrder;
            }

            console.log(sortable1);
            console.log(sortable2);
        }

    }).disableSelection();
  });
  </script>

我可以正确地将已排序的div顺序保存到DB,但我不知道如何填充div以再次更正顺序。请帮我 。提前谢谢。

1 个答案:

答案 0 :(得分:1)

不是将排序顺序保存为数据库,而是以逗号分隔值1,2,3,4,5为例,为什么不直接保存“排序列”,例如#sortable1这样当你加载div时,你只需将这个值传递给你的js逻辑。

示例:

如果您在数据库中保存排序列名称#sortable1#sortableN,那么您最终会

    var newOrder = jQuery(this).sortable('toArray').toString();
    if(jQuery(this).attr('id')== "<% $your_php_variable %>"){
        sortable1 = newOrder;
    }
    else {
        sortable2 = newOrder;
    }

我不确定你是如何将php变量传递给我所用的<% $your_php_variable %>的UI。在您的PHP代码中的某些时候,您将设置$your_php_variable = '#sortableX';