我有一个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>';
答案 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/