Tablesorter jQuery不会排序我的表

时间:2013-12-05 13:48:51

标签: javascript jquery html tablesorter

我正在尝试使用Tablesorter,但是当我使用PHP输出表时它似乎不起作用。

我的PHP代码:

function displayHours() {
    include 'dbinfo.php';
    global $name;
    $date = $_SESSION["selectedDate"];
    $result = mysqli_query($con, "SELECT * FROM hours WHERE name='$name' AND date='$date'");
    echo '<thead><tr>
    <th><center>Project name</th>
    <th><center>Hour(s)</th>
    </tr></thead>';
    $color = FALSE;
        while($row = mysqli_fetch_array($result))
      {
      if (!$color) {
        echo "<tbody><tr>";
      $color = TRUE;
      } else if ($color) {
        echo "<tbody><tr class=\"alt\">";
        $color = FALSE;
      }
    echo "<td> " . $row['projectName'] . "</td>";
    echo "<td> " . $row['description'] . "</td>";
    echo '</tr> ';
    echo '</tbody>';
    }
}

我的HTML代码:

<div class="datagrid">
    <table id="myTable" class="tablesorter">  
        <?php displayHours();?>
        </tbody>
    </table>
</div>

我的jQuery代码:

$(document).ready(function () {
    $("#myTable").tablesorter(); 
}); 

如果我在一个循环中输出两个,它至少会对它们进行排序,但是一旦我只创建一个它就不会做任何事情。

我尝试了一切,请帮忙吗?

2 个答案:

答案 0 :(得分:1)

tablesorter没有问题,但你的表格是html。您的PHP代码生成thead和几个tbody标记。通常应该有一个tbody标记。

要在放置tbody开启的while循环之前和在循环关闭标记之后在PHP中修复它。

//open tbody tag
echo "<tbody>";

while($row = mysqli_fetch_array($result)){
    //print rows
}

//close tbody tag
echo "</tbody>";

“html代码”中还有一个不必要的tbody关闭,最好将其删除。

<div class="datagrid">
    <table id="myTable" class="tablesorter">  
        <?php displayHours();?>
    </table>
</div>

然后你的tableorter将顺利运作。

答案 1 :(得分:0)

我自己在使用tablesorter时知道。我不得不使用
$(表).trigger(&#34;更新&#34)
获取动态添加的表进行更新,但这不是php。

相关问题