Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Tablesorter jQuery不会对我的表进行排序_Javascript_Jquery_Html_Tablesorter - Fatal编程技术网

Javascript Tablesorter jQuery不会对我的表进行排序

Javascript Tablesorter jQuery不会对我的表进行排序,javascript,jquery,html,tablesorter,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'");

我正在尝试使用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>';
    }
}
如果我在一个循环中输出两个,它至少会对它们进行排序,但一旦我只输出一个,它就不会做任何事情


我什么都试过了,有什么帮助吗?

我自己使用tablesorter时就知道了。我不得不使用
$(表)。触发器(“更新”)

获取要更新的动态添加的表,但是这不是php的问题。

表排序器没有问题,但是您的表是html。PHP代码生成
thead
和几个
tbody
标记。通常应该有一个
t车身
标签

在PHP中,在while循环之前将
tbody
打开,然后在循环之后关闭标记

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

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

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

这样,您的表排序器就会工作顺利

您正在将
tbody
添加到所有行中,这可能是问题所在。您应该在循环之前打开标记,然后在循环之后关闭它,而不是添加每一行。此外,你还关闭了你运行displayHours fonction的实体。哇。。它实际上起作用了。我完全忘记了它会给每一行一个tdbody。。。谢谢!!!救了我一天。请告诉我这永远不会是面向生产的代码?PHP代码中充满了注入攻击向量:|@scriptmonster添加您的评论作为答案,我将投票表决!
$(document).ready(function () {
    $("#myTable").tablesorter(); 
}); 
//open tbody tag
echo "<tbody>";

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

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