如何根据名字对table进行排序

How to sort table according to name

我有一个 table 我想在我的 PHP 文件中排序:

//Table headers
echo "<tr><th>ID</th>";
echo "<th>Name</th>";
echo "<th>Badge Number</th>";
echo "<th>Category</th>";
echo "<th>Action</th>";
       .
       .
  Some codes
       .
       .

echo "<tr>";
echo "<td id=\"row$count\">$id</td>";
echo "<td>$name</td>"; 
echo "<td>$badge_number</td>";
echo "<td>$category</td>";
echo "<td><input type=\"button\" name=\"delete\" value=\"Delete\" onclick=\"deleteThis($count, $privilege)\"/></td>";
echo "</tr>";

其实我不认为代码是必要的,但我似乎无法找到出路。我想根据 NAME 对 table 进行排序。我想要的结果是每当我单击 "Name" header 时,它都会根据名称按升序或降序对 table 进行排序。

我知道这可以通过 javascript 来完成,但是我必须将每个值分配给一个数组并使用 array.sort 还是其他更好的方法?

注意:我是 JavaScript 的新手,还在学习中,所以如果您想回答,请使用纯 JavaScript 代码而不是 jQuery,因为我什么都不知道jQuery。请不要推荐任何 jQuery 插件,例如 "Table Sort" 等

编辑:好的,假设我知道一点 jQuery(超级初学者水平),我知道,他们有什么方法可以完成?

解决 jQuery 中的这个问题会很简单。用纯 JS 解决它会非常复杂,也许是不可能的。我强烈建议学习 jQuery,因为所有浏览器都支持它,并以您无法想象的方式扩展 Javascript。一开始的学习曲线非常陡峭,但一旦你学会了就很容易了。 学习的好网站 jQuery -> http://www.1stwebdesigner.com/jquery-beginners-1/

在 jQuery 中,您只需读取行并将它们解析为一个关联数组 (object),键作为您排序的值,每行的值。清除 table 中的行,然后按键对 object 进行排序,然后将数组的每个元素作为一行添加到 table 中。

如果您的数据来自数据库(听起来不像),那么在显示之前对其进行排序是最简单的。如果您希望所有列都是 sortable,我通常使用 ajax 和 jQuery 来实现,但一个简单的方法是让每个列标题成为一个表单提交,然后重新绘制page - 数据库代码每次都会对结果进行排序。