【问题标题】:Ajax paginate sql queryAjax分页sql查询
【发布时间】:2012-08-14 18:10:46
【问题描述】:

我正在开发一个需要对 sql 数据库结果进行分页的网站。这个想法是这样的,用户可以单击带有每个美国州代码的提交按钮,以查看该州用户留下的所有 cmets。例如,单击 NY 应显示所有来自 NY 的人的 cmets,单击 TX 应显示所有 TX 等等。在一个大列表中显示结果是可行的,但我现在想对这些结果进行分页。我目前正在使用位于其自己的 paginate.php 文件中的此代码,每次显示新状态时都需要重新更新该文件:

<?php

...

$rs_result = mysql_query($sql); 
$row = mysql_fetch_row($rs_result); 
$total_records = $row[0]; 
$total_pages = ceil($total_records / 10); 

for ($i=1; $i<=$total_pages; $i++) { 

echo "<a href='?page=".$i."'>".$i."</a> ";

}; 
?>

代码本身并不完全有效,因为它会刷新页面。这样做会丢失先前单击哪个状态的记忆。如何更改它以使用 Ajax,这样我就不需要刷新页面。如果您需要更多信息,请告诉我。

【问题讨论】:

    标签: php mysql ajax pagination


    【解决方案1】:

    您要做的是使用您在 href 属性中的相同内容进行 AJAX 调用。响应后获取数据并将其放入页面上的 html 元素中。查看jQuery's load 方法。


    哦,是的,只是为了让我们的小动作继续进行。您应该尝试停止使用 mysql_query() 并开始使用 mysqli。 mysql 已弃用,不再受支持。 :/

    【讨论】:

      【解决方案2】:

      您需要将结果包装在具有指定 ID 的 DIV 中,并将 URL 更改为指向 javascript 函数(我建议使用 jQuery)。该函数必须获取将在该 div 中显示的数据。

      例如:

      <div id="results">
      </div> 
      
      <?php
          for ($i=1; $i<=$total_pages; $i++) { 
              echo "<a href='?page=".$i."' onclick="getPage('".$i."'); return false;">".$i."</a> ";
          }; 
      ?>
      
      // and script
      
      // the script asks result.php for page and returns html result.
      <script type="text/javascript">
          function getPage(page){
              $("#results").load("result.php", { page: page } );
          }
      </script>
      

      【讨论】:

        猜你喜欢
        • 2012-05-24
        • 2011-08-07
        • 2012-08-27
        • 2013-03-03
        • 1970-01-01
        • 1970-01-01
        • 2012-04-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多