首页 > php开发 > php ajax 无刷新翻页实现代码

php ajax 无刷新翻页实现代码

下面只是一个测试,在实际应用中,可能这种方法会比较占系统资源,不建意利用这样的方法处理分页效果,代码如下:

var http_request = false;
function send_request(url) { //初始化,指定处理函数,发送请求的函数
    http_request = false;
    //开始初始化xmlhttprequest对象
    if (window.xmlhttprequest) { //mozilla浏览器
        http_request = new xmlhttprequest();
        if (http_request.overridemimetype) { //设置mime类别
            http_request.overridemimetype("text/xml");
        }
    } else if (window.activexobject) { //ie浏览器
        try {
            http_request = new activexobject("msxml2.xmlhttp");
        } catch (e) {
            try {
                http_request = new activexobject("microsoft.xmlhttp");
            } catch (e) {}
        }
    }
    if (!http_request) { //异常,创建对象实例失败
        window.alert("创建xmlhttp对象失败!");
        return false;
    }
    http_request.onreadystatechange = processrequest;
    //确定发送请求方式,url,及是否同步执行下段代码
    http_request.open("get", url, true);
    http_request.send(null);
}
//处理返回信息的函数
function processrequest() {
    if (http_request.readystate == 4) { //判断对象状态
        if (http_request.status == 200) { //信息已成功返回,开始处理信息
            document.getelementbyid('result').innerhtml = http_request.responsetext;
        } else { //页面不正常
            alert("您所请求的页面不正常!");
        }
    }
}
function dopage(obj, url) {
    document.getelementbyid(obj).innerhtml = "正在读取数据...";
    send_request(url);
    reobj = obj;
}
php html处理代码:
<div id="result">  
<?php
$classid = $_request['classid'];
//注意有个问题,就是数据如果总数小于每页数据不能显示
$page = isset($_get['page']) ? intval($_get['page']) : 1; //这句就是获取page=18中的page的值,假如不存在page,那么页数就是1。
$num = 10; //每页显示10条数据
require "conn.php";
mysql_select_db($database_lr, $lr);
/*
首先咱们要获取数据库教程中到底有多少数据,才能判断具体要分多少页,具体的公式就是  
总数据库除以每页显示的条数,有余进一。  
也就是说10/3=3.3333=4 有余数就要进一。  
*/
$result = mysql_query("select * from blog where classid='$classid'");
$total = mysql_num_rows($result); //查询所有的数据
$url = 'show_main.php'; //获取本页url
//页码计算
$pagenum = ceil($total / $num); //获得总页数,也是最后一页
$page = min($pagenum, $page); //获得首页
$prepg = $page - 1; //上一页
$nextpg = ($page == $pagenum ? 0 : $page + 1); //下一页
$offset = ($page - 1) * $num; //获取limit的第一个参数的值,假如第一页则为(1-1)*10=0,第二页为(2-1)*10=10。
//开始分页导航条代码:
$pagenav = $page . "/" . $pagenum . "&nbsp;<b>&nbsp;" . ($total ? ($offset + 1) : 0) . "</b>-<b>" . min($offset + 10, $total) . "</b> &nbsp;total $total &nbsp;";
//第一页:
if ($page == 1) {
    $pagenav.= "first&nbsp;";
} else {
    $pagenav.= "<a href=网页特效:dopage('result','$url?classid=$classid&page=1');>first</a>&nbsp;";
}
if ($prepg) $pagenav.= " <a href=javascript:dopage('result','$url?classid=$classid&page=$prepg');>prev</a>&nbsp;";
else $pagenav.= " prev&nbsp;";
if ($nextpg) $pagenav.= " <a href=javascript:dopage('result','$url?classid=$classid&page=$nextpg');>next</a> ";
else $pagenav.= " next ";
if ($pagenum > $page) {
    $pagenav.= "&nbsp;<a href=javascript:dopage('result','$url?classid=$classid&page=$pagenum');>last</a> ";
} else {
    $pagenav.= "&nbsp;last";
}
$pagenav.= "&nbsp;total page $pagenum ";
//假如传入的页数参数大于总页数,则显示错误信息
if ($page > $pagenum) {
    echo "error : can not found the page " . $page;
    exit;
}
$info = mysql_query("select * from blog where classid='$classid' order by id desc limit $offset,$num"); //获取相应页数所需要显示的数据
if ($total > 0) {
    while ($it = mysql_fetch_array($info)) {
        echo $it['title'] . "&nbsp;(" . $it['updatetime'] . ")";
        echo "<br>";
        echo $it['content'];
        echo "<br>";
    } //显示数据
    echo "<br>";
    echo $pagenav; //输出分页导航
    
} else {
    echo "no comment.";
}
?>  
</div>


文章网址:http://www.phprm.com/develop/fs4235.html

随意转载^^但请附上教程地址。

标签:php ajax 无刷新翻页

相关文章

发表留言