0

我正在开发一个需要对 sql 数据库结果进行分页的网站。这个想法是这样的,用户可以单击带有每个美国州代码的提交按钮,以查看该州用户留下的所有评论。例如点击 NY 应该显示所有来自 NY 的人的评论,点击 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,这样我就不需要刷新页面。如果您需要更多信息,请告诉我。

4

2 回答 2

1

您需要将结果包装在DIV具有分配 ID 的 a 中,并将 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-08-18T16:43:46.153 回答
0

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


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

于 2012-08-18T16:42:14.547 回答