phpcms列表分页样式|php分页页码动态的实现
编辑整理:整理来源:优酷,浏览量:80,时间:2023-03-17 07:15:02
关于phpcms列表分页样式内容导航:
1、phpcms列表分页样式
补充知识:在调用的列表标签中加入属性:page="$page",然后通过{$pages}来调用翻页链接。
要注意的是:你在首页的控制器方法中(content/index/init)要做一些相应的修改,因为首页程序里应该没有给你准备翻页的变量参数。获取翻页传参放到$page变量里:
$page=$_GET['page'];或者是在模板里列表标签前加 :
{php $page=$_GET['page'] }例如:
{php $page=$_GET['page'] }
{pc:content action="lists" num="10" cat order="id desc" page="$page"}
{loop $data $v}
{$v[title]}
{/loop}
{/pc}
{$pages}因为首页翻页挺少见,未验证,仅作参考。

01 {pc:content action="lists" cat num="2" order="id desc" page="$page"}
02 {loop $data $r}
03
04 {$r[title]}
05
分类:thinkphp|时间:{date('y-m-d h:i:s',$r[inputtime])}|浏览量:8999
06
{$r[description]}
07
08
09 {/loop}
10
{$pages}
11 {/pc}
更新首页缓存,再看一下效果,首页数据列表分了3页,当点击第2、3的页码时,地址栏显示url分别是
1 http://localhost/phpcms/?page=2
2 http://localhost/phpcms/?page=3
这没有错,但是页码还是停留在第一页码上,且列表显示的还是第一页的数据,
在调试过程中最引起我注意的是,点击页码时,在地址栏显示相应的页码数值,如果能够把页码值传进给"page",会有什么变化呢?于是我把上面代码的
"page="$page""改成了"page="$_get['page']",再次更新首页缓存,点击第二分页,
phpcms v9首页列表分页成功了!
首页列表进行分页?
是要二级分类还是其它,用foreach循环来实现呗。
2、php分页类
原来发表过一个脱离来自数据库的分页类,最近使用的时候发现有些时候搜索的东西过于大的时候,采用url传递参数的方式,可能会有一定的影响或者叫已知的bug,这次做了一些扩展,同时兼容了以前的模式,使用上面很简单的,只需要多设置一个参数就可以了代码如下:
复制代码 代码临乐五检谈夫吗如下:
<?php
/**
* 功能: 分页类,根据提供的数据总量和页面大小
* 创建日期:Fri Apr 20 16:45:21 CST 2007
* 最后更新:
* 作者: sanshi <sanshi0815@***.com>
*/
class pagination
{
var 甚球$result = array();
var $pVar = "my据触p";//page参数分页记数
var $urlParamStr = ""; //页面的所有参数
v克黄题丰富老线正赵ar $sqlMo鱼veNumber = 0; //数据的偏移量
var $is_办斤根度吸念造训妒post = false;
public function pagination()
{
}
public function set($sum,$pageSize,$page="",$is_post = false)
{
$案行放难何林且程this->is_p边血地远他万其首头独ost = $is_post;
$this->pVar = defined('PAGE_BAR') ? PAGE_BAR : 'myp' ;
$url = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRI八续游粒重显治啊间NG'];
//计算出总页数
$curPage = $this->getCurPage();
$temp['sumPage'] = ceil($su营而刚形如别导m/$pageSize);
//修改了,页码超出的b属富程场粉父ug
if($乎curPage>$temp['sumPage']) $curPage=$temp['sumPage'];
$temp['curPage'] = $curPage;
$temp['nextPage'] = $temp['sumPage'] > $curPag深成e ? ($curPage+1) : $temp['sumPage'];
$temp['upPage'] = $curPage >1 ? $curPage-1 :1;
$火似问特temp['endPage'] = $temp['sumPage'];
$this->urlParamStr = $this->_make胶格换香Url($url);
$夜江少喜伟满temp['urlPageStr'] = ($page=="") ? $this->_makeUrl($url) : $pag鸡e.$this->urlParamStr;
$this->sqlMoveNumber = $curPage <2 ? 0 : ($curPage-1)*$pageSize;
$temp['sqlMoveNumber'] = $this->sqlMoveNumber;
$temp['rowNo'] = 生延货守接调差设$sum;
$this->result = $temp;
return $this->result;
//print_r($temp);exit();
}
public function getSqlMove()
{
return $this->sqlMoveNumber;
}
public function getFooter()
{
$str= "共有 <FONT COLOR=#FF0033>{$this->result['rowNo']}</FONT> 条 <a href='{$this->result['urlPageStr']}{$this->result['upPage']}'";
if($this->is_post) $str .=" onclick='return sanshi_page_post(this.href,{$this->result['upPage']});' ";
$str .=" >上一页</a> ";
$str .=" 当前 {$this->result['curPage']} 页";
$str .=" 共有 {$this->result['sumPage']} 页";
$str .=" <a href='{$this->result['urlPageStr']}{$this->result['nextPage']}'";
if($this->is_post) $str .=" onclick='return sanshi_page_post(this.href,{$this->result['nextPage']});' ";
$str .=" >下一页</a>";
return $str;
}
public function getJumpPage()
{
if($this->is_post)
{
$str = " 跳到第 <select name='topage' size='1' onchange='sanshi_page_post(\"{$this->result['urlPageStr']}\"+this.value,this.value)'>\n";
}else{
$str = " 跳到第 <select name='topage' size='1' onchange='window.location=\"{$this->result['urlPageStr']}\"+this.value'>\n";
}
for($i=1;$i<=$this->result['sumPage'];$i++)
{
$str .= ($i==$this->result['curPage']) ? "<option value='$i' selected>$i</option>\n" : "<option value='$i'>$i</option>\n";
}
$str.="</select> 页";
//输出form表单
if($this->is_post)
{
$str .="<script type="text/javascript"><!--
function sanshi_page_post(jump_link,page_no)
{
document.getElementById('sanshi_goPage').action = jump_link; document.getElementById('{$this->pVar}').value = page_no;
document.getElementById('sanshi_goPage').submit();
return false;
}
// --></script>";
$str .="<form name='sanshi_goPage' id='sanshi_goPage' method=post>";
$str .="<input type=\"hidden\" name='{$this->pVar}' id='{$this->pVar}' value=0>";
$_POST = isset($_POST) ? $_POST : array();
foreach($_POST AS $k=>$v)
{
$str .="<input type=\"hidden\" name=\"{$k}\" id=\"{$k}\" value=\"{$v}\">";
}
$str .="</form>";
}
return $str;
}
public function getCurPage()
{
return isset($_GET[$this->pVar]) ? intval($_GET[$this->pVar]) : 1 ;
}
//分析出url的参数返回?后的参数,页码为空 包括问号
private function _makeUrl($url)
{
$arrayUrl=parse_url($url);
if(isset($arrayUrl['query']))
{
$q=$arrayUrl['query'];
parse_str($q,$qParam);
//print_r($qParam);
if(array_key_exists($this->pVar,$qParam))
{
foreach ($qParam AS $k=>$v)
{
if($k !=$this->pVar) $temp[$k] = $v;
}
$temp[$this->pVar] = "";
if(function_exists("http_build_query"))
return '?'.http_build_query($temp);
else
return '?'.sanshi_http_build_query($temp);
}else {
return "?{$q}&{$this->pVar}=";
}
}else{
return "?{$this->pVar}=";
}
}
}
function sanshi_http_build_query($a,$b='',$c=0)
{
if (!is_array($a)) return false;
foreach ((array)$a as $k=>$v)
{
if ($c)
$k=$b."[".$k."]";
elseif (is_int($k))
$k=$b.$k;
if (is_array($v)||is_object($v))
{
$r[]=http_build_query($v,$k,1);
continue;
}
$r[]=$k."=".urlencode($v);
}
return implode("&",$r);
}
/*
//print_r($_SERVER);
$p = new pagination();
$p->set(10,2,'thi.php');
echo $p->getFooter();
echo $p->getJumpPage();
*/
?>

3、php分页页码动态的实现
ii,,ii,在页码那里,鼠标右键。。。。,页码格式,然后点编号格式左边的下拉箭头。也有i,再点向下箭头,即可卡看到i

行业热门话题:
【php分页类】【php分页页码动态的实现】【php分页显示】【php分页功能怎么实现】【php pdo分页】【phpcms栏目分类】【dedecms分页标签】【php分页函数封装】【php分页查询mysql】【php数组分页】
phpcms列表分页样式|php分页页码动态的实现完!