0

我正在使用以下代码从 CSV 文件创建 HTML 表。如何使此表可排序?我尝试使用 Jquery 表排序器,但问题似乎是当我单击一行对其进行排序时,它会被 PHP 重新创建,从而导致未排序的表。

<!DOCTYPE html>
<html>

<?php
function jj_readcsv($filename, $header=false) {
$handle = fopen($filename, "r");
echo '<table>';
//display header row if true
if ($header) {
$csvcontents = fgetcsv($handle);
echo '<tr>';
foreach ($csvcontents as $headercolumn) {
    echo "<th>$headercolumn</th>";
}
echo '</tr>';
}
// displaying contents
while ($csvcontents = fgetcsv($handle)) {
echo '<tr>';
foreach ($csvcontents as $column) {
    echo "<td>$column</td>";
}
echo '</tr>';
}
echo '</table>';
fclose($handle);

}

jj_readcsv('table.csv',true);
?>
4

2 回答 2

3

页面重定向是由于其他一些错误PHP代码(可能)或也可能是脚本造成的。

编辑:缩进所有代码并检查它。


PHP代码:

<?php
function jj_readcsv($filename, $header=false) {
$handle = fopen($filename, "r");
?>
<table id="tb" >
<?php
if ($header) {
$csvcontents = fgetcsv($handle);
?>
    <thead>
        <tr>
    <?php foreach ($csvcontents as $headercolumn) { ?>
            <th><?php echo $headercolumn; ?></th>
    <?php } ?>
        </tr>
    </thead>
    <tbody>
<?php } 
while ($csvcontents = fgetcsv($handle)) { ?>
        <tr>
    <?php foreach ($csvcontents as $column) { ?>
            <th><?php echo $column; ?>
    <?php } ?>
        </tr>
<?php } ?>
    </tbody>
</table>
<?php fclose($handle); 

}
jj_readcsv('table.csv',true);
?>

jQuery JS:

$("#tb").tablesorter(); 
于 2012-05-03T12:46:36.203 回答
2

根据 tablesorter 网站,您需要将他们的类应用到您的表中,并为主要列标题使用 thead 标签,例如:

<table id="myTable" class="tablesorter"> 
<thead> 
<tr> 
    <th>Last Name</th> 
    <th>First Name</th> 
    <th>Email</th> 
    <th>Due</th> 
    <th>Web Site</th> 
</tr> 

etc... 

根据http://tablesorter.com/docs/上的文档,您的 php 没有为 tablesorter jquery 生成正确的 html。

于 2012-05-03T12:45:00.883 回答