2012-05-03 7 views
0

次のコードを使用して、csvファイルからHTMLテーブルを作成しています。 このテーブルをソート可能にするにはどうすればよいですか?私はJqueryのtablesorterを使用しようとしましたが、行をクリックしてソートすると、それがPHPによって再作成され、結果としてソートされていないテーブルが生成されるようです。HTMLテーブルはJquery Tablesorterでソートできますか?

<!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); 
?> 
+1

がより明確にしては、PHPのコードは、HTMLのテーブルを配っています。 Jquery Tablesorterを使ってソートしています。どの部分がブラウザにページをリロードさせていますか?プラグインはそれを引き起こすものではありません。 – Niranjan

+1

tablesorterは、ソートを実行しているときにページを再送信するべきではないので、ソートイベントが発生したときにあなたのPHPが起動されるべきではありません。あなたのtablesorterのコードを投稿し、tablesorterイベントをどのようにヘッダに適用するのかを示すことができますか? – rmmoul

+0

@Hansテーブルリーダーは[このコードを使用して]作業していますか(http://stackoverflow.com/a/10431693/1317740)? – Niranjan

答えて

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(); 
2

あなたがあなたのテーブルに自分のクラスを適用するなど、メインの列見出しにTHEADタグを使用する必要がtablesorterのウェブサイトによると:

<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... 

あなたのPHPテーブルワーカーjqueryの適切なhtmlを生成していません。http://tablesorter.com/docs/

関連する問題