通过单击 php 网页中的列标题对列进行排序


Sorting Column by clicking column header in php web page

我有一个页面,它有一个按钮,可以使用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,以便作为排序依据的列,你需要给你的

一个id,把id称为'data',你要点击的列会有一个onclick="loadOrderedData(columnName)"属性调用加载函数,比如...
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>