我有一个页面,它有一个按钮,可以使用jquery单击并显示表中数据库中的所有数据。我需要通过单击列标题对表格进行排序。问题是我有的是,表格的填充方式。 请参阅代码。我有填充它的 php 代码。列是 ID、许可证等。所以我需要根据列对其进行排序。
<?php
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query = "
my query from database to display all the values
";
$result= $dbh->prepare($query,array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
$result->execute();
echo "<table id='abc' class='abcd' width='100%'><tr>"
. "<th id='mydata' class='myd' onclick='loadOrderedData(myd)'>ABC</th>"
. "<th>DEF</th>"
.......
. "</tr>";
while($data=$result->fetch(PDO::FETCH_ASSOC,PDO::FETCH_ORI_NEXT))
{
echo "<tr>"
. "<td>" . $data['ABC'] . "</td>"
. "<td>" . $data['DEF'] . "</td>"
.......
. "</tr>";
}
echo "</table>";
?>
它显示在一个div中,该div首先是隐藏的,然后使用jQuery在获取数据的按钮单击上取消隐藏。请帮助我提供可行的解决方案。
我尝试制作<a href="#" >
并使用点击方法。它不起作用,可能是由于它填充数据的方式。
关于评论中的操作问题...使用排序依据的示例查询...
SELECT * FROM `my_table` ORDER BY `price` ASC
....这将返回按价格列中的值排序的结果。使用 ajax,您可以使用 jQuerys .load 函数。并传递带有 get 变量的 url,以便作为排序依据的列,你需要给你的
function loadOrderedData(orderBy){
$('#data').load('aPhpPageThatReturnsData.php?orderBy='+orderBy);
}
因此,在被调用的文件中,查询可能如下所示
SELECT * FROM `my_table` ORDER BY `$_GET['orderBy']` ASC
//code to create new html for your data <tr> using sorted data
希望这有所帮助。更新。。。。
$result->execute();
?>
<table id='abc' class='abcd' width='100%'>
<tr>
<th class='myd' onclick='loadOrderedData("myd")'>ABC</th>
<th>DEF</th>
</tr>
<tr>
<td colspan="2">
<table id="myData">
<?php
while($data=$result->fetch(PDO::FETCH_ASSOC,PDO::FETCH_ORI_NEXT))
{ ?>
<tr>
<td><?=$data['ABC']?></td>
<td><?=$data['DEF']?></td>
</tr>
<?php
} ?>
</table>
</td>
</tr>
</table>