我正在开发一个需要对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,因此我不需要刷新页面。如果您需要更多信息,请告诉我们。
答案 0 :(得分:1)
您需要将结果包装在具有指定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>
答案 1 :(得分:0)
你要做的是使用href属性中的相同内容进行AJAX调用。在响应之后获取数据并将其放入页面上的html元素中。查看jQuery's load方法。
哦,是的,只是为了保持我们的小动作。您应该尝试停止使用mysql_query()并开始使用mysqli。不推荐使用mysql,不再支持它。 :/