基于smarty 的分页代码

以数组的思想编写的 分页样式

//分页
function page($total,$current)
{
    $page = array();
    if($total>7)        //总数大于7
    {
        if($current>=3)        //前三页显示
        {
            $pagef = array();
            if($current<$total -3)     //前后相接处理
            {
                for ($i=$current-2;$i<$current+3;$i++)
                {
                    if ($i == $current)
                    {
                        $page['priv'] = $i>1?$i-1:false;
                        $pagef[$i]['is_select'] = true;
                        $pagef[$i]['curr']    = $i;
                        $page['next'] = $i>=$total?false:$i+1;
                    }
                    else
                    {
                        $pagef[$i]['curr']    = $i;
                    }
                }
            }
            else
            {
                for ($i=$total-6;$i<=$total;$i++)
                {
                    if ($i == $current)
                    {
                        $page['priv'] = $i>1?$i-1:false;
                        $pagef[$i]['is_select'] = true;
                        $pagef[$i]['curr']    = $i;
                        $page['next'] = $i>=$total?false:$i+1;
                    }
                    else
                    {
                        $pagef[$i]['curr']    = $i;
                    }
                }
            }
        }
        elseif($current==1)                            //第一页处理
        {
            $pagef = array();
            for ($i=$current;$i<$current+5;$i++)
            {
                if ($i == $current)
                {
                    $page['priv'] = $i>1?$i-1:false;
                    $pagef[$i]['is_select'] = true;
                    $pagef[$i]['curr']    = $i;
                    $page['next'] = $i>=$total?false:$i+1;
                }
                else
                {
                    $pagef[$i]['curr']    = $i;
                }
            }
        }
        elseif($current==2)                        //第二页处理
        {
            $pagef = array();
            for ($i=$current-1;$i<$current+4;$i++)
            {
                if ($i == $current)
                {
                    $page['priv'] = $i>1?$i-1:false;
                    $pagef[$i]['is_select'] = true;
                    $pagef[$i]['curr']    = $i;
                    $page['next'] = $i>=$total?false:$i+1;
                }
                else
                {
                    $pagef[$i]['curr']    = $i;
                }
            }
        }
        if($current<$total -3)                    //前后相接处理
        {
            $pagel = array();
            for ($j=$total-1;$j<=$total;$j++)
            {
                if ($j == $current)
                {
                    $page['priv'] = $j>1?$j-1:false;
                    $page['next'] = $j>=$total?false:$j+1;
                    $pagef[$j]['is_select'] = true;
                    $pagel[$j]['curr']   = $j;
                }
                else
                {
                    $pagel[$j]['curr']   = $j;
                }
            }
        }
    }
    else                                                //总数小于7
    {
        if($current>=3)
        {
            $pagef = array();
            for ($i=1;$i<=$total;$i++)
            {
                if ($i == $current)
                {
                    $page['priv'] = $i>1?$i-1:false;
                    $pagef[$i]['is_select'] = true;
                    $pagef[$i]['curr']    = $i;
                    $page['next'] = $i>=$total?false:$i+1;
                }
                else
                {
                    $pagef[$i]['curr']    = $i;
                }
            }
        }
        elseif($current==1)
        {
            $pagef = array();
            for ($i=$current;$i<=$total;$i++)
            {
                if ($i == $current)
                {
                    $page['priv'] = $i>1?$i-1:false;
                    $pagef[$i]['is_select'] = true;
                    $pagef[$i]['curr']    = $i;
                    $page['next'] = $i>=$total?false:$i+1;
                }
                else
                {
                    $pagef[$i]['curr']    = $i;
                }
            }
        }
        elseif($current==2)
        {
            $pagef = array();
            for ($i=$current-1;$i<=$total;$i++)
            {
                if ($i == $current)
                {
                    $page['priv'] = $i>1?$i-1:false;
                    $pagef[$i]['is_select'] = true;
                    $pagef[$i]['curr']    = $i;
                    $page['next'] = $i>=$total?false:$i+1;
                }
                else
                {
                    $pagef[$i]['curr']    = $i;
                }
            }
        }
    }

    $pagef = empty($pagef)?'':$pagef;
    $pagel = empty($pagel)?'':$pagel;
    $page['frist'] = $pagef;
    $page['last']  = $pagel;
    return $page;
}

 

php使用代码

$curr = isset($_REQUEST['cur'])?$_REQUEST['cur']:1;
    $gd_num = $goods->getNum($user_id);
    $page_size = 5;
    $total = ceil($gd_num/$page_size);
//    if($curr >$total)
//    {
//        echo "<script>alert('没有这页');</script>";       
//    }
    $goods_info = $goods->getAllGoodsInfo($user_id,($curr-1)*$page_size,$page_size);
    if(!empty($goods_info))
    {
            foreach ($goods_info as $k=>$v)
            {
                $sql = "select count(*) from goods_message where is_read=0 and reply_id=0 and m_type='g' and goods_id=".$v['goods_id'];
                $counts = $db->getOne($sql);
                $goods_info[$k]['gmsg_count'] = $counts;
            }
    }
    $page = page($total,$curr);
   
    $base_url = "goods_manage.php?act=mlist&cur=";
    $form_link = "goods_manage.php?";
   
    $smarty->assign('curr',$curr);
    $smarty->assign('base_url',$base_url);
    $smarty->assign('page',$page);
    $smarty->assign('goodsinfo',$goods_info);
    $smarty->display('goods_mlist.html');

page.html

<!--{begin pagelist-->
        <div class="pagelist">
            <div class="pageinner">           
                <{if $page.priv}>
                <a class="pagepre" href="<{$base_url}><{$page.priv}>">上一页</a>
                <{/if}>
                <{if $page.frist}>
                <{foreach from=$page.frist item=first}>
                <{if $first.is_select}>
                <strong><{$first.curr}></strong>
                <{else}>
                <a href="<{$base_url}><{$first.curr}>"><{$first.curr}></a>
                <{/if}>
                <{/foreach}>
                <{/if}>
                <{if $page.last}>
                <span>...</span>
                <{foreach from=$page.last item=last}>
                <a href="<{$base_url}><{$last.curr}>"><{$last.curr}></a>
                <{/foreach}>
                <{/if}>
                <{if $page.next}>
                <a class="pagenext" href="<{$base_url}><{$page.next}>">下一页</a>
                <{/if}>
<{if $page.frist}>
                <form action="<{$form_link}>" method="post">
                    <input type="hidden" name="act" value="mlist"/>
                    <span>到第</span><input type="text" name="cur" size="10" align="absbottom" class="pagenum" /><span>页</span>
                    <input class="pagebtn" type="submit" align="absbottom" value="确定" />
                </form>
<{/if}>
            </div>
        </div>
<!--}end pagelist-->

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值