使html表列可选择排序

时间:2010-12-23 22:22:05

标签: php html sorting tablesorter

我有一个html表,从文本文件填充,格式化和半冒号分隔。 我希望用户可以选择在单击列名称(标题)时按字母顺序排序。

我如何在PHP中执行此操作?还是有另一种方法吗?谢谢你的帮助。

示例原始数据/输入如下所示:

TYPE=abc;PART=georgetown;FILE=goog_abc.dat.2010122211.gz
TYPE=xyz;PART=ucny;FILE=aol_xyz.dat.2010122209.gz

表的PHP代码:

$lines = preg_split('~\s*[\r\n]+\s*~', file_get_contents('/temp/tab.txt'));
foreach($lines as $i => $line) {
    $pairs = explode(';', $line);
    foreach($pairs as $pair) {
        list($column, $value) = explode('=', $pair, 2);
        $columns[$column] = true;
        $rows[$i][$column] = $value;
    }
}
$columns = array_keys($columns); 
echo '<table><thead><tr>';
foreach($columns as $column) {
    echo '<th>'.$column.'</th>';
}
echo '</tr></thead><tbody>';
foreach ($rows as $row) {
    echo '<tr>';
    foreach($columns as $column){
               echo '<td>'.$row[$column].'</td>';
    }
    echo '</tr>';
}
echo '</tbody></table>';

2 个答案:

答案 0 :(得分:2)

我建议使用一些jQuery。事实上,this看起来就像你需要的那样。

修改将其置于<head>代码

之间
<script type="text/javascript">
$(document).ready(function() 
    { 
        $("#myTable").tablesorter( {sortList: [[0,0], [1,0]]} ); 
    } 
);
</script>

或者您可以将其放在单独的文件中并像这样链接。 (如果你打算写更多的javascript,可能只会这样做。

<script type="text/javascript" src="path/to/file.js"></script>

答案 1 :(得分:1)

使用基于javascript的东西在绘制后对表进行排序。尝试从PHP中添加这种排序是痛苦的,除非你有多页数据(然后你需要PHP在数据库端对它进行排序),否则不需要。这是一个列表,为您提供了大量可排序表的选项 - 在使用PHP生成表之后,您应该可以将许多选项应用到表中。

http://www.webdesignbooth.com/15-great-jquery-plugins-for-better-table-manipulation/