2012-04-17 161 views
1

我有表ID test_table如何根据行ID列表更改表中行的顺序?

<table id="test_table"> </table> 

和或有不同的ID。

我已下令排列表ID喜欢

["name","value","description"] 

什么是呈现不同的表在屏幕上(用户可以在飞成立新秩序,这是我如何填写行的名单ID)。

如何在基于表排序列表设置新秩序? (说明: 我有两个表一个抛开其他,用户可以拖放在第一表中的行,我需要有第二个相同的顺序,在第二台IDS具有相同的id像第一+前缀“预览” 这我就是在拖第一个表/滴。)

$("#cleanVert").tableDnD({ 
    onDragClass: "myDragClass", 
    onDrop: function(table, row) { 
     var rows = table.tBodies[0].rows; 
     var debugStr = "New Order: "; 
     var outStr = ""; 
     for (var i=0; i<rows.length; i++) { 
      debugStr += rows[i].id+" "; 
      outStr += rows[i].id; 
      if(i<(rows.length-1)){ 
       outStr+="," 
      } 
     } 
     $("#debugArea").html(debugStr); 
    }, 
    onDragStart: function(table, row) { 
     $("#debugArea").html("Started dragging row "+row.id); 
    } 
}); 
+0

做一个JS Ajax调用PHP脚本 – 2012-04-17 07:28:52

+1

如何是你的用户能够重新排序列表?你需要向我们展示一些你已经试过的代码,以便我们能够更好地帮助你。我们不打算写的代码,你 – 2012-04-17 07:32:03

+1

你可以使用jQuery UI卖空 – thecodeparadox 2012-04-17 07:36:20

回答

1

我觉得你是一个客户端的表格排序后,有不少可在网上,这取决于你所熟悉的JavaScript库。我选择使用jQuery插件叫做tablesorter,我根据你的代码,这可能是一个不错的选择对你来说太假设。

它的缺点是它只是客户端,所以如果用户没有启用Javascript,他们将无法排序表,我会说这不是一个主要问题,一般用户总是启用Javascript。

另一种选择是建立一个服务器端排序,这可能是因为在你的数据库查询添加

ORDER BY "$selectedField" "$order" 

一样简单。它也将确保它在没有Javascript的情况下工作。

现在很多流行的Web开发框架提供了排序功能的,如果你还没有发现它,我鼓励你看看你的编程语言的一些选项。

1

如果你想在jQuery中做所有事情,它看起来像你正在尝试做的,然后我会考虑jQuery Sortable,但如果你想它像一个链接/按钮,按升序排序每个字段或降序或类似的用户名等,并保持它的服务器端,那么我会建议有按钮/链接重新加载本身的url中的子查询,会说像?order_by=asc?order_by=username&dir=asc然后运行检查它在页面上,将该变量/子查询($ _GET ['order_by'])传递给一个函数。在功能方面,做一个查询,看起来类似于这样:

$order_by = "ORDER BY " . $_GET['order_by'] . $_GET['dir']; 
$query = "SELECT * 
      FROM table 
      $order_by"; 

然后,您可以使用变量使用的主要页面加载此相同的查询(尚未排序)没有困难,查询则当重新运行加载$order_by然后列表将按参数排序。

相关问题