2012-07-19 68 views
0

我使用位於here的jQuery Table Sorter,它不對我的表進行排序。我使用完全相同的代碼進行簡單的測試頁面,並且沒有任何問題。如果有人可以指出什麼可能會導致我的代碼中的問題,這將是美好的。jQuery Table Sorter

這裏是調用JS文件的代碼,路徑是正確的。

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<link rel="stylesheet" type="text/css" href="../css/style.css" /> 
<script type="text/javascript" src="../js/jquery-latest.js"></script> 
<script type="text/javascript" src="../js/jquery.tablesorter.js"></script> 
</head> 

這是我的代碼片段,其中包含需要排序的表。

<div id="roster"> 
<?php 
$guildRealm = "taken out"; 
$guildName = "taken out"; 

$json = file_get_contents("http://us.battle.net/api/wow/guild/".$guildRealm."/".$guildName."?fields=members"); 
$json= json_decode($json); 
$name = $json->name; 
$level = $json->level; 
$achievementPoints = $json->achievementPoints; 

?> 

<span class="h2"><?php echo $name; ?></span><br /> 
<span class="h4">Level: <?php echo $level; ?></span><br /> 
<span class="h5"><img src="images/guild_achievement_icon.png" width="38" height="32"> </span><span class="AP"><?php echo $achievementPoints; ?></span><br /> 
<table id="gRoster" class="tablesorter" width="100%" cellspacing="0"> 
<thead> 
<tr class="roster-header"> 
    <th width="5%"></th> 
    <th align="left">Name</th> 
    <th align="center">Rank</th> 
    <th align="center">Level</th> 
    <th align="center">Class</th> 
    <th align="center">Race</th> 
    <th align="center">Achievement Points</th> 
</tr> 
</thead> 

<?php 
$count = 0; 

foreach($json->members as $p) { 
    $mrank = $p->rank; 
    $mname = $p->character->name; 
    $mclass = $p->character->class; 
    $mrace = $p->character->race; 
    $mgender = $p->character->gender; 
    $mlevel = $p->character->level; 
    $mthumb = $p->character->thumbnail; 
    $machievement = $p->character->achievementPoints; 
    $colour = "default"; 
    $mraceImage = "images/inv_misc_questionmark.jpg"; 
    $mclassImage = "images/inv_misc_questionmark.jpg"; 
    $mgrank = ""; 

    // Alot of if statements go here that just display how some of the content is display, already tested and they do not cause the problem. 

    if ($count%2==0) { 
     echo "<tbody>"; 
     echo "<tr class=\"even\">"; 
     echo "<td class=\"roster-avatar\"><img src=\"http://us.battle.net/static-render/us/".$mthumb."?alt=/wow/static/images/2d/avatar/".$mrace."-".$mgender.".jpg\" width=\"40\" height=\"40\" class=\"".$colour."\"></td>"; 
     echo "<td class=\"roster-name\"><span class=\"".$colour."\">".$mname."</span></td>"; 
     echo "<td align=\"center\">".$mgrank."</td>"; 
     echo "<td align=\"center\">".$mlevel."</td>"; 
     echo "<td align=\"center\"><img src=\"".$mclassImage."\" /></td>"; 
     echo "<td align=\"center\"><img src=\"".$mraceImage."\" /></td>"; 
     echo "<td align=\"center\">".$machievement."</td>"; 
     echo "</tr>"; 
     echo "</tbody>"; 
    } else { 
     echo "<tbody>"; 
     echo "<tr class=\"odd\">"; 
     echo "<td class=\"roster-avatar\"><img src=\"http://us.battle.net/static-render/us/".$mthumb."?alt=/wow/static/images/2d/avatar/".$mrace."-".$mgender.".jpg\" width=\"40\" height=\"40\" class=\"".$colour."\"></td>"; 
     echo "<td class=\"roster-name\"><span class=\"".$colour."\">".$mname."</span></td>"; 
     echo "<td align=\"center\">".$mgrank."</td>"; 
     echo "<td align=\"center\">".$mlevel."</td>"; 
     echo "<td align=\"center\"><img src=\"".$mclassImage."\" /></td>"; 
     echo "<td align=\"center\"><img src=\"".$mraceImage."\" /></td>"; 
     echo "<td align=\"center\">".$machievement."</td>"; 
     echo "</tr>"; 
     echo "</tbody>"; 
    } 
    $count++; 
} 
?> 
</table> 

<script type="text/javascript"> 
$(document).ready(function() 
    { 
     $("#gRoster").tablesorter(); 
    } 
); 
</script> 
</div><!--- roster ---> 

回答

1

我看到兩種可能性:

    創建
  1. 不止一個 - 阻塞
  2. 您的變量不是HTML安全(如$ machievement可能包含HTML相關字符) - 你應該在最少使用htmlspecialchars()
+0

你是什麼意思我創建多個塊? – akari 2012-07-19 14:20:35

+0

在之後,您正在循環使用foreach,並對數據集的每個條目執行回波「」.... – damac 2012-07-19 14:22:44

+0

就是這樣,謝謝!我也修正了這些變量。 – akari 2012-07-19 14:27:57