php+ajax实现分页
2016-07-26 18:00
549 查看
ajaxpage.php【这里是数据展示页面的代码】:
<meta charset=’utf-8′>
<script src=”http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js” type=”text/javascript”/></script>
<script type=”text/javascript”>
//获取当前url地址,主要是获取page参数,为了不实现跳转在分页中采用了锚点连接的方式
var url=location.href;
uarr=url.indexOf(‘#’);
npage=url.substr(uarr+6);
if(!npage)npage=1;
jQuery(function(){
$.ajax({
type: “POST”,
url: “ajax.php”,
dataType:’json’,//由于ajax返回值是数组,所以在php脚本中经过json编码
data: “page=”+npage,
success: function(msg){
$(‘#post_result’).html(msg.page_content);
$(‘#navipage’).html(msg.page_list);
}
});
})
function url_go(page){
$.ajax({
type: “POST”,
url: “ajax.php”,
dataType:’json’,
data: “page=”+page,
success: function(msg){
$(‘#post_result’).html(msg.page_content);
$(‘#navipage’).html(msg.page_list);
}
});
}
</script>
<div id=post_result>
</div>
<div id=navipage>
</div>
————————————————————-
ajax.php【这里是生成数据和分页的代码】:
<?php
$host=”localhost”;
$user=”root”;
$pwd=”root”;
$dbname=”test”;
$link = mysql_connect($host, $user, $pwd)or die(“Could not connect: ” . mysql_error());
mysql_select_db($dbname, $link) or die (‘Can\’t use test : ‘ . mysql_error());
mysql_query(“SET NAMES ‘utf8′”);
mysql_query(“SET CHARACTER_SET_CLIENT=utf8″);
mysql_query(“SET CHARACTER_SET_RESULTS=utf8″);
//分页设置
$page=$_REQUEST['page']?$_REQUEST['page']:1;
//设置每页显示多好条记录
$page_size=2;
//设置limit偏量
$off=($page-1)*$page_size;
//获取总记录数
$sql_all=”select * from user order by id desc”;
$all_res=mysql_query($sql_all);
$total_all=mysql_num_rows($all_res);
//计算页面总数,注意键名,当然你也可以使用数字下标
$page_num=ceil($total_all/$page_size);
//读取当前页记录数
$sql_page=”select * from user order by id desc limit $off,$page_size”;
$page_res=mysql_query($sql_page);
while ($arr=mysql_fetch_array($page_res)){
$ajax_arr['page_content'].=’id:’.$arr['id'].’<br>user:’.$arr['user'].’<br><hr>’;
}
for($i=1;$i<=$page_num;$i++){
if($i==$page){
$ajax_arr['page_list'].=’<a href=?#page=’.$i.’ onclick=”url_go(‘.$i.’)”>[<font color=red>'.$i.'</font>]</a>’;
}else{
$ajax_arr['page_list'].=’<a href=?#page=’.$i.’ onclick=”url_go(‘.$i.’)”>['.$i.']</a>’;
}
}
//对数组进行json编码,否则ajax无法获取数组形式的返回值
echo json_encode($ajax_arr);
?>
<meta charset=’utf-8′>
<script src=”http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js” type=”text/javascript”/></script>
<script type=”text/javascript”>
//获取当前url地址,主要是获取page参数,为了不实现跳转在分页中采用了锚点连接的方式
var url=location.href;
uarr=url.indexOf(‘#’);
npage=url.substr(uarr+6);
if(!npage)npage=1;
jQuery(function(){
$.ajax({
type: “POST”,
url: “ajax.php”,
dataType:’json’,//由于ajax返回值是数组,所以在php脚本中经过json编码
data: “page=”+npage,
success: function(msg){
$(‘#post_result’).html(msg.page_content);
$(‘#navipage’).html(msg.page_list);
}
});
})
function url_go(page){
$.ajax({
type: “POST”,
url: “ajax.php”,
dataType:’json’,
data: “page=”+page,
success: function(msg){
$(‘#post_result’).html(msg.page_content);
$(‘#navipage’).html(msg.page_list);
}
});
}
</script>
<div id=post_result>
</div>
<div id=navipage>
</div>
————————————————————-
ajax.php【这里是生成数据和分页的代码】:
<?php
$host=”localhost”;
$user=”root”;
$pwd=”root”;
$dbname=”test”;
$link = mysql_connect($host, $user, $pwd)or die(“Could not connect: ” . mysql_error());
mysql_select_db($dbname, $link) or die (‘Can\’t use test : ‘ . mysql_error());
mysql_query(“SET NAMES ‘utf8′”);
mysql_query(“SET CHARACTER_SET_CLIENT=utf8″);
mysql_query(“SET CHARACTER_SET_RESULTS=utf8″);
//分页设置
$page=$_REQUEST['page']?$_REQUEST['page']:1;
//设置每页显示多好条记录
$page_size=2;
//设置limit偏量
$off=($page-1)*$page_size;
//获取总记录数
$sql_all=”select * from user order by id desc”;
$all_res=mysql_query($sql_all);
$total_all=mysql_num_rows($all_res);
//计算页面总数,注意键名,当然你也可以使用数字下标
$page_num=ceil($total_all/$page_size);
//读取当前页记录数
$sql_page=”select * from user order by id desc limit $off,$page_size”;
$page_res=mysql_query($sql_page);
while ($arr=mysql_fetch_array($page_res)){
$ajax_arr['page_content'].=’id:’.$arr['id'].’<br>user:’.$arr['user'].’<br><hr>’;
}
for($i=1;$i<=$page_num;$i++){
if($i==$page){
$ajax_arr['page_list'].=’<a href=?#page=’.$i.’ onclick=”url_go(‘.$i.’)”>[<font color=red>'.$i.'</font>]</a>’;
}else{
$ajax_arr['page_list'].=’<a href=?#page=’.$i.’ onclick=”url_go(‘.$i.’)”>['.$i.']</a>’;
}
}
//对数组进行json编码,否则ajax无法获取数组形式的返回值
echo json_encode($ajax_arr);
?>
相关文章推荐
- PHPStorm+XDebug进行调试
- php opcache vs apc / eaccelerator / xcache
- PHP 设置调试工具XDebug PHPStorm IDE
- ftp操作方法整理
- apc和apcu
- 在 Laravel 5 中集成 Pjax 实现无刷新加载页面的扩展包 —— Laravel Pjax
- PHPCMS推荐位调用自定义字段
- php记录代码执行时间
- IIS PHP
- php curl 模拟post 请求
- php-自动过滤、自动填充、自动验证
- codeigniter Message: mkdir(): Invalid path Filename: drivers/Session_files_driver.php
- php 防注入的一些总结
- PHP 魔术方法之 __call 与 __callStatic
- mysql phpMyAdmin 导入报错iconv(): Detected an illegal character in input string原因解析
- phpexcel 导出int float
- php安装参数
- 【Matplotlib】 标注摄氏度符号
- 【Matplotlib】绘图常见设置说明
- PHP CI框架使用多个数据库