2012-05-03 134 views
0

我正在使用以下代碼從csv文件創建HTML表。 如何讓這張桌子可以排序?我嘗試使用Jquery tablesorter,但問題似乎是,當我點擊一行進行排序時,它會被PHP重新創建,然後導致未排序的表。可用Jquery Tablesorter排序的HTML表格?

<!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使用此代碼後,tablesorter現在可以工作了嗎(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

按照的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... 

你的PHP沒有爲tablesorter jquery生成合適的html,根據他們的文檔在http://tablesorter.com/docs/