php 原生php分页,漂亮的分页

34 篇文章 0 订阅
12 篇文章 0 订阅

效果:

 

1、php分页方法 

function page($count,$listRows,$curPage,$rowsmaxPage =null,$search=null){
    $search = isset($search)?$search:"";
    $rowsmaxPage = isset($rowsmaxPage)?$rowsmaxPage:10;
    $totalpage =ceil($count/$listRows);
    //存储页码字符串
    $pageNumString = "";
    if($curPage <=($rowsmaxPage/2)){
        $begin =1;
        $end = $totalpage>=$rowsmaxPage?$rowsmaxPage:$totalpage;
    }else{
        $end = $curPage +($rowsmaxPage/2)>$totalpage?$totalpage:$curPage +($rowsmaxPage/2);
        $begin =$end -$rowsmaxPage-1<=1?1:$end -$rowsmaxPage-1;
    }
    //实现上一页
    $prev = $curPage -1<=1?1:$curPage -1;
    $pageNumString .="<li><p>".$count." Record ".$curPage."/".$totalpage." PAGE</li>";
    $pageNumString .="<li><a href='".$_SERVER['PHP_SELF']."?curPage=1&search=".$search."'>首页</a></li>";
    $pageNumString .="<li><a href='".$_SERVER['PHP_SELF']."?curPage=$prev&search=$search'>&laquo;</a></li>";
 
    //根据起始页与终止页将当前页面的页码显示出来
    for($i=$begin;$i<=$end;$i++){
        //使用if实现高亮显示当前点击的页码
        if($curPage == $i){
            $pageNumString .= "<li><a class=\"active\" href='".$_SERVER['PHP_SELF']."?curPage=$i&search=$search'>$i</a></li>";
        }else{
            $pageNumString .= "<li><a href='".$_SERVER['PHP_SELF']."?curPage=$i&search=$search'>$i</a></li>";
        }
    }
    //实现下一页
    $next = $curPage +1 >=$totalpage?$totalpage:$curPage +1;
    $pageNumString .="<li><a href='".$_SERVER['PHP_SELF']."?curPage=$next&search=$search'>&raquo;</a></li>";
    $pageNumString .="<li><a href='".$_SERVER['PHP_SELF']."?curPage=$totalpage&search=$search'>尾页</a></li>";
    $pageNumString .="<li><input type='hidden' value='$totalpage' id='max'>
                           <input type='text' class='jump'  value=''>&nbsp;
                           <a onclick='jumpPage();' οnclick='javascript:;' style='margin-left: 3px;'>GO</a> 
                        
                      </li>";
    return $pageNumString;
}

2、跳页,js

 

//js片段代码
function jumpPage(){  
        var curPage = document.getElementsByClassName("jump")[0].value;
        var maxpage = document.getElementById("max").value;
        if(isNaN(curPage) || Number(curPage)<1){
            curPage = 1;
        }
        if(Number(curPage)>Number(maxpage)){
            curPage = maxpage;
            if(curPage==0){
                curPage=1;
            }
        }
        window.location="<?php echo $_SERVER['PHP_SELF'];?>?curPage="+curPage+"&search=<?php echo $search;?>";
    }

3、css代码片段

.page {
        text-align: center;
    }
    .page li {
        display: inline;
    }
    .page li a {
        color: black;
        padding: 6px 8px;
        text-decoration: none;
        transition: background-color .3s;
        border: 1px solid #ddd;
        margin: 2px;
        border-radius: 2px;
    }
    ul.page li .active {
        background-color: #4CAF50;
        color: white;
        border: 1px solid #4CAF50;
        display: inline-flex;
    }
    ul.page li a:hover:not(.active) {
        background-color: #ddd;
    }
    .jump{
        width: 30px;
        margin-left: 5px;
        height: 27px;
        border: 1px solid #ccc;
        border-radius: 3px;
    }
    .jump:focus{
        border: solid 1px #0f9ae0;
    }

总结:

1、修改数据库链接

2、修改表的名称

3、修改字段

直接运行

<?php   
function con(){
    $serverHost = "127.0.0.1";     //数据库地址
    $user = '';                      //数据库用户名
    $password = '';                 //数据库密码
    $dbName = "";
    header("content-type:text/html;charset=utf-8");
    $link=mysqli_connect($serverHost,$user,$password,$dbName);
 
    // 检查连接
    if (!$link) {
        die("连接错误: " . mysqli_connect_error());
    }
    mysqli_query($link,'set names utf8');//设置字符集
    return $link;
}
//显示总页数的函数
function taotalCount($sql){
    $link=con();
    $list = mysqli_query($link, $sql);
    $obj = mysqli_fetch_object($list);
    mysqli_close($link);
    return $obj->total;
}
//分页数据
function data($sql){
    $link=con();
    $result  = mysqli_query($link,$sql); //获取所有的数据
    $arr=array();
    while($t_result = mysqli_fetch_array($result,MYSQLI_ASSOC)){
        $arr[]=$t_result;
    }
    mysqli_free_result($result);
    mysqli_close($link);
    return $arr;
}
function page($count,$listRows,$curPage,$rowsmaxPage =null,$search=null){
    $search = isset($search)?$search:"";
    $rowsmaxPage = isset($rowsmaxPage)?$rowsmaxPage:10;
    $totalpage =ceil($count/$listRows);
    //存储页码字符串
    $pageNumString = "";
    if($curPage <=($rowsmaxPage/2)){
        $begin =1;
        $end = $totalpage>=$rowsmaxPage?$rowsmaxPage:$totalpage;
    }else{
        $end = $curPage +($rowsmaxPage/2)>$totalpage?$totalpage:$curPage +($rowsmaxPage/2);
        $begin =$end -$rowsmaxPage-1<=1?1:$end -$rowsmaxPage-1;
    }
    //实现上一页
    $prev = $curPage -1<=1?1:$curPage -1;
    $pageNumString .="<li><p>".$count." Record ".$curPage."/".$totalpage." PAGE</li>";
    $pageNumString .="<li><a href='".$_SERVER['PHP_SELF']."?curPage=1&search=".$search."'>首页</a></li>";
    $pageNumString .="<li><a href='".$_SERVER['PHP_SELF']."?curPage=$prev&search=$search'>&laquo;</a></li>";
 
    //根据起始页与终止页将当前页面的页码显示出来
    for($i=$begin;$i<=$end;$i++){
        //使用if实现高亮显示当前点击的页码
        if($curPage == $i){
            $pageNumString .= "<li><a class=\"active\" href='".$_SERVER['PHP_SELF']."?curPage=$i&search=$search'>$i</a></li>";
        }else{
            $pageNumString .= "<li><a href='".$_SERVER['PHP_SELF']."?curPage=$i&search=$search'>$i</a></li>";
        }
    }
    //实现下一页
    $next = $curPage +1 >=$totalpage?$totalpage:$curPage +1;
    $pageNumString .="<li><a href='".$_SERVER['PHP_SELF']."?curPage=$next&search=$search'>&raquo;</a></li>";
    $pageNumString .="<li><a href='".$_SERVER['PHP_SELF']."?curPage=$totalpage&search=$search'>尾页</a></li>";
    $pageNumString .="<li><input type='hidden' value='$totalpage' id='max'>
                           <input type='text' class='jump'  value=''>&nbsp;
                           <a onclick='jumpPage();' οnclick='javascript:;' style='margin-left: 3px;'>GO</a> 
                        
                      </li>";
    return $pageNumString;
}
//定义一个最大的页码数 
$rowsmaxPage = 6;
// 默认列表每页显示行数
$listRows = 10;
//总记录数SQL
isset($_REQUEST["search"])?($search= $_REQUEST["search"]):$search="";
$where = "1=1 "; 
$countsql = "SELECT count(*) as total FROM article where $where";
$count = taotalCount($countsql);
//当前页
$curPage = isset($_GET['curPage'])?($_GET['curPage']>ceil($count/$listRows)?ceil($count/$listRows):$_GET['curPage']):1;
//分页数据
$offset = ($curPage-1)*$listRows;
$sql = "SELECT artid,classid,title FROM article where $where
            limit $offset,$listRows";
$data = data($sql);
//分页样式
$page = page($count,$listRows,$curPage,$rowsmaxPage,$search);
?>
 
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>文章列表</title>
    <meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" name="viewport"/>
    <meta content="yes" name="apple-mobile-web-app-capable"/>
    <meta content="black" name="apple-mobile-web-app-status-bar-style"/>
    <meta content="telephone=no" name="format-detection"/>
    <link rel="stylesheet" href="css/ydui.css?rev=@@hash"/>
    <link rel="stylesheet" href="css/yui.css"/>
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <script src="js/ydui.js"></script>
</head>
<script >
    function jumpPage(){  
        var curPage = document.getElementsByClassName("jump")[0].value;
        var maxpage = document.getElementById("max").value;
        if(isNaN(curPage) || Number(curPage)<1){
            curPage = 1;
        }
        if(Number(curPage)>Number(maxpage)){
            curPage = maxpage;
            if(curPage==0){
                curPage=1;
            }
        }
        window.location="<?php echo $_SERVER['PHP_SELF'];?>?curPage="+curPage+"&search=<?php echo $search;?>";
    }
    function doSubmitForm() {
        var form = document.getElementById('form');
        form.submit();
    }
</script>
<style>
    .page {
        text-align: center;
    }
    .page li {
        display: inline;
    }
    .page li a {
        color: black;
        padding: 6px 8px;
        text-decoration: none;
        transition: background-color .3s;
        border: 1px solid #ddd;
        margin: 2px;
        border-radius: 2px;
    }
    ul.page li .active {
        background-color: #4CAF50;
        color: white;
        border: 1px solid #4CAF50;
        display: inline-flex;
    }
    ul.page li a:hover:not(.active) {
        background-color: #ddd;
    }
    .jump{
        width: 30px;
        margin-left: 5px;
        height: 27px;
        border: 1px solid #ccc;
        border-radius: 3px;
    }
    .jump:focus{
        border: solid 1px #0f9ae0;
    }
 
</style>
<body>
<section class="g-flexview">
    <header class="m-navbar">
        <div class="navbar-center"><span class="navbar-title">食品</span></div>
    </header>
    <form action="index.php" method="post" id="form">
        <div style="position: relative;top: 8px;z-index: 5000;height: 43px;" >
            <div class="input-group" style="width: 200px;float: right;right: 0;">
                <input type="text" class="form-control" value="<?php echo $search;?>" name="search">
                <span class="input-group-addon" style="background: #5cb85c;"οnclick='doSubmitForm()'>search</span>
            </div>
        </div>
    </form>
   <section class="g-scrollview">
        <div class="m-cell demo-small-pitch">
            <?php  foreach ($data as $k=>$vo ){?>
            <div class="cell-item" style="width: 100%">
                <div class="cell-right cell-arrow" >
                    <div style="width: 25%;text-align: left;"><?PHP echo $vo["artid"] ?></div>
                    <div style="width: 50%;text-align: left;"><?php echo $vo["classid"]?></div>
                    <div style="width: 22%;text-align: left;" ><?php echo $vo["title"]?></div>
                </div>
            </div>
            <?php }?>
        </div>
        <ul class="page">
           <?php echo $page;?>
        </ul>
    </section>
 
</section>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
</body>
</html>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值