您现在的位置是:首页 > cms教程 > Ecshop商城教程Ecshop商城教程

ecshop后台分页写法示例分析

魏争博2024-11-28Ecshop商城教程已有人查阅

导读既然是分页,道理都是一样的,不过ecshop前台分页的函数和后台分页的函数不同,后台分页函数为page_and_size(),在admin/includes/lib_main.php里。

既然是分页,道理都是一样的,不过ecshop前台分页的函数和后台分页的函数不同,后台分页函数为page_and_size(),在admin/includes/lib_main.php里。
都是用ajax来进行分页所需参数的传递,用到后台封装的js函数库listtable.js,下面就来说说ajax分页实现的步骤:
1,html页面:引入js{insert_scripts files="../js/utils.js,listtable.js"}
将分页所需的参数用listTable 对象进行属性赋值,如下:
<script type="text/javascript" language="JavaScript">
listTable.recordCount = {$record_count};
listTable.pageCount = {$page_count};
{foreach from=$filter item=item key=key}
listTable.filter.{$key} = '{$item}';
{/foreach}
{literal}
</script>
2,php页面:分页的每个要素实现,给模板页面所需的参数赋值
$card_list = card_list(); //求得目标数组的函数
$smarty->assign('card_list', $card_list['list']);
$smarty->assign('filter', $card_list['filter']);
$smarty->assign('record_count', $card_list['record_count']);
$smarty->assign('page_count', $card_list['page_count']);
$smarty->assign('full_page', 1);
//函数如下,仅作为参考
function card_list()
{
$result = get_filter();
if ($result === false)
{
/* 分页大小 */
$filter = array();
/* 记录总数以及页数 */
$sql = "SELECT COUNT(*) FROM ".$GLOBALS['ecs']->table('card_number');
$filter['record_count'] = $GLOBALS['db']->getOne($sql);
$filter = page_and_size($filter);
/* 查询记录 */
$sql = "SELECT *"."FROM ". $GLOBALS['ecs']->table('card_number') .
' WHERE card_id > 0 order by card_id ASC LIMIT ' . $filter['start'] . ',' . $filter['page_size'];
set_filter($filter, $sql);
}
else
{
$sql = $result['sql'];
$filter = $result['filter'];
}
$all = $GLOBALS['db']->getAll($sql);
return array('list' => $all, 'filter' => $filter, 'page_count' => $filter['page_count'], 'record_count' => $filter['record_count']);
}
3,到这里,分页模板page.html里的函数就能进行参数传递,这些函数大致有
{literal}<a href="javascript:listTable.gotoPageFirst()">{/literal}{$lang.page_first}</a>
{literal}<a href="javascript:listTable.gotoPagePrev()">{/literal}{$lang.page_prev}</a>
{literal}<a href="javascript:listTable.gotoPageNext()">{/literal}{$lang.page_next}</a>
{literal}<a href="javascript:listTable.gotoPageLast()">{/literal}{$lang.page_last}</a>
打开模板一看便知
4,之后一步
上面的js函数实际上是这样的链接,act=query&record_count=21&page=1&page_count=2&start=15
所以我们还需要在php页面有一个判断,和输出目标数组一样,只不过这是点击分页后的数组输出。
elseif ($_REQUEST['act'] == 'query')
{
$card_list = card_list();
$smarty->assign('card_list', $card_list['list']);
$smarty->assign('filter', $card_list['filter']);
$smarty->assign('record_count', $card_list['record_count']);
$smarty->assign('page_count', $card_list['page_count']);
make_json_result($smarty->fetch('card_list.htm'), '',
array('filter' => $card_list['filter'], 'page_count' => $card_list['page_count']));
}
到此为止,分页的效果就实现了,这个觉得比前台分页要简单的多,原因是用js来进行参数传递。

本文标签:

很赞哦! ()

相关源码

  • (自适应)变压器电子元器件电器配件pbootcms网站模板源码为电子元器件企业打造的响应式网站模板,基于PbootCMS内核开发,助力企业快速构建专业级线上展示平台。支持页面独立设置标题、关键词和描述,内置SEO友好结构。PHP程序确保运行安全稳定,有助于提升搜索引擎收录效果。查看源码
  • 响应式艺考培训学校机构pbootcms模板html5源码基于PbootCMS免费开源内核开发,为艺考培训学校与艺术机构设计,替换图文即可快速适配全行业需求。响应式布局兼容手机/PC端,数据实时同步,运维效率提升300%。查看源码
  • (自适应)电梯扶梯升降梯行业pbootcms企业网站模板(自适应手机版)响应式电梯扶梯类pbootcms模板 电梯生产企业绿色企业网站源码下载PbootCMS内核开发的网站模板,该模板适用于电梯、扶梯类等企业,查看源码
  • (自适应)行业协会工会机构单位pbootcms网站源码本模板基于PbootCMS内核开发,为行业协会、工会组织及机构单位量身打造。采用响应式布局设计,可自动适配手机、平板等移动设备,数据实时同步更新。模板包含行业资讯查看源码
  • (自适应)电子元件电路板元器件pbootcms网站源码下载为电子元器件、电路板制造类企业设计,特别适合展示产品参数、技术规格等内容。采用响应式技术,确保各类电子元件在不同设备上都能清晰展示。查看源码
  • (PC+WAP)五金机械设备营销型模板下载带在线留言为机械设备制造商设计的营销型模板,集成产品参数对比系统、产品展示模块和询价管理功能。采用PbootCMS开发内核,PHP7+运行环境。手工编写语义化HTML5结构,CSS3动画优化交互体验。查看源码
分享笔记 (共有 篇笔记)
验证码:

本栏推荐