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のWebサイトによると、クラスをテーブルに適用し、次のようなメインの列見出しに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はtablesorterjqueryが機能する適切なhtmlを生成していません。

于 2012-05-03T12:45:00.883 に答える