сделать столбцы HTML-таблицы необязательно сортируемыми - PullRequest
0 голосов
/ 24 декабря 2010

У меня есть 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 ]

2 голосов
/ 24 декабря 2010

Я бы порекомендовал использовать jQuery .На самом деле это выглядит именно так, как вам нужно.

Редактировать Поместите это между вашими <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 голос
/ 24 декабря 2010

Используйте что-то на основе JavaScript для сортировки таблицы после ее рисования.Попытка добавить этот вид сортировки изнутри PHP является болезненной и ненужной, если у вас нет нескольких страниц данных (тогда вам нужен PHP для сортировки на стороне базы данных).Вот список, который дает вам МНОГО опций для сортируемых таблиц - вы сможете применить многие из них к вашей таблице после того, как сгенерируете ее с помощью PHP.

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

...