如何根据名称对表进行排序

时间:2015-05-19 02:51:49

标签: javascript php html sorting html-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排序我的桌子。每当我点击&#34;姓名&#34;标题,它将根据名称按升序或降序对表进行排序。

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

注意:我是JavaScript新手并且还在学习如果您想回答,请使用纯JavaScript代码而不是jQuery,因为我不知道任何jQuery。请不要建议任何jQuery插件,例如&#34; Table Sort&#34;等

编辑:好的,所以让我说我知道一些jQuery(超级初学者级别),我做了什么,他们有什么方法可以完成它?

1 个答案:

答案 0 :(得分:1)

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

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

如果您的数据来自数据库(听起来不像),那么在显示之前对其进行排序是最简单的。如果你希望列可以全部排序,我通常用ajax和jQuery来做,但是一个简单的方法就是让每个列头都是一个表单提交然后重绘页面 - 数据库代码每次都会对结果进行排序。 / p>