0

我有一个页面,其中有一个按钮,可以单击并使用 jquery 在表中显示数据库中的所有数据。我需要通过单击列标题对表格进行排序。问题是我拥有的是表格的填充方式。看代码。我有填充它的php代码。这些列是 ID、License 等。所以我需要根据列对其进行排序。

<?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 中,然后使用 jquery 在获取数据的按钮单击时将其取消隐藏。请帮助我提供可行的解决方案。

我尝试制作<a href="#" >和使用 onclick 方法。它不起作用,可能是由于它如何填充数据。

4

1 回答 1

0

与评论中的操作问题有关...使用 order by... 的示例查询

 SELECT * FROM `my_table` ORDER BY `price` ASC 

....这将返回按价格列中的值排序的结果。使用 ajax 你可以使用 jQuerys .load 函数。并通过一个获取变量的 url 传递要排序的列,您需要为您的 <tr> 提供一个 id,将 id 称为“数据”,并且您将单击的列将具有 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>
于 2013-09-14T07:15:28.573 回答