我正在尝试使用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();
});
如果我在一个循环中输出两个,它至少会对它们进行排序,但是一旦我只创建一个它就不会做任何事情。
我尝试了一切,请帮忙吗?
答案 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。