phpcms完美实现推荐位分页(原创)
[ 2016/05/08, Phpcms , 3902阅, 0评 ]

phpcms程序默认推荐位是不能分页哒,但是有的情况下又非得需要它能够分页,各种研究后终于找到了解决的方法。代码如下:

<?php 
pc_base::load_sys_class("get_model", "model", 0);
$get_db = new get_model();
$pagesize = 12;
$page = intval($_GET[page]) ? intval($_GET[page]) : 1;
if($page<=0){$page=1;}
$offset = ($page - 1) * $pagesize;
$r = $get_db->sql_query("SELECT COUNT(*) from `v9_position_data` a, `v9_products` b where a.id=b.id and a.posid=1 order by a.listorder desc");
$s = $get_db->fetch_next();
$pages = pages($r, $page, $pagesize, $urlrule);
$r = $get_db->sql_query("select * from `v9_position_data` a, `v9_products` b where a.id=b.id and a.posid=1 order by a.listorder desc LIMIT $offset,$pagesize");
?>
<?php while(($s = $get_db->fetch_next()) != false) {$a[] = $s;}$data = $a;unset($a);?>
<?php $n=1;if(is_array($data)) foreach($data AS $r) { ?>
<li><a href="{$r[url]}">{$r[title]}</a></li>
<?php $n++;}unset($n); ?>
<div id="pagenavi"><div>
{pc:get sql="SELECT count(*) as count FROM v9_position_data where posid=1" cache="3600" return="data"}
{loop $data $v}
<input type="hidden" id="totalnum" value="{$v[count]}" />
{/loop}
{/pc}
<script src="js/jquery-1.11.1.min.js"></script>
<script src="js/laypage.js"></script>
<script>
//计算出总页数,采用向上取整
var aa = Math.ceil($("#totalnum").val()/12);
//配置分页插件
laypage({
  cont: 'pagenavi',
  pages: aa, //可以叫服务端把总页数放在某一个隐藏域,再获取。假设我们获取到的是18
  curr: function(){ //通过url获取当前页,也可以同上(pages)方式获取
    var page = location.search.match(/page=(\d+)/);
    return page ? page[1] : 1;
  }(), 
  jump: function(e, first){ //触发分页后的回调
    if(!first){ //一定要加此判断,否则初始时会无限刷新
      location.href = '?page='+e.curr;
    }
  }
});
</script>

注:需引入jquery库和layui的分页插件。将以上代码放到对应的模板文件中,并配置为自己的数据表名称、posid、每页需要显示的条数(上述代码中的“12”表示每页显示条数)即可。

示例下载:http://pan.baidu.com/s/1dF1JsRJ 密码:zr3e

有朋自远方来...评论一下呗O(∩_∩)O