jQuery:排序分层数据?

时间:2010-06-07 19:57:53

标签: php javascript jquery mysql hierarchical-data

我已经尝试了一段时间来研究一种使用jQuery对嵌套类别进行排序的方法。我没有构建自己的插件来做到这一点,所以我试图找到已经可用的东西。现在用这个http://www.jordivila.net/code/js/jquery/ui-widgetTreeList_inheritance/widgetTreeListSample.aspx尝试了几个小时,并且无法让它发挥作用。

创建一个jQuery / jQuery UI脚本有哪些替代方法可以处理子类和父类别的排序,这种方式可以与AJAX PHP后端结合使用来处理数据库中的实际排序?

谢谢!

2 个答案:

答案 0 :(得分:3)

您可以尝试使用嵌套集模型在数据库中构建分层数据,它允许您使用单个SELECT

按照深度顺序查询类别

以下是MySQL的一篇文章,描述了它是如何在关系数据库中实现的 http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/

答案 1 :(得分:2)

我使用http://www.jordivila.net/jquery-widget-inheritance.html中的小部件对嵌套类别进行排序,这对我有用。

尝试使用这个简单的html文件

              

<script src="http://www.jordivila.net/code/js/jquery/ui-widgetTreeList/widgetTreeList.js" type="text/javascript"></script>
<script src="http://www.jordivila.net/code/js/jquery/ui-widgetTreeList_inheritance/widgetTreeList_Sort.js" type="text/javascript"></script>


<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/ui-lightness/jquery-ui.css" rel="stylesheet" type="text/css" />
<link href="http://www.jordivila.net/code/js/jquery/ui-widgetTreeList/widgetTreeList.css" rel="stylesheet" type="text/css" />

<style type="text/css">
    #treeListSortable {width:300px;}
</style>

    <script type="text/javascript">
        $(document).ready(function() {
        $('#treeListSortable').treeListSortable();
        });

    </script>

                <ul id="treeListSortable">
                      <li>Node 1
                        <ul>
                            <li>Node 12</li>
                            <li>Node 9</li>
                            <li>Node 7
                                <ul>
                                    <li>Node 6</li>
                                    <li>Node 11</li>
                                    <li>Node 10</li>
                                    <li class="ui-treeList-open">Node 8
                                    <ul>
                                        <li>Node 5</li>
                                        <li>Node 2</li>
                                        <li>Node 4</li>
                                        <li>Node 3</li>
                                    </ul>
                                    </li>
                                </ul>
                            </li>
                            <li>Node 13</li>
                        </ul>
                      </li>
                </ul>