Ajax paginate sql查询

时间:2012-08-18 16:33:24

标签: php mysql ajax pagination

我正在开发一个需要对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,因此我不需要刷新页面。如果您需要更多信息,请告诉我们。

2 个答案:

答案 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,不再支持它。 :/