您现在的位置是:首页 > cms教程 > Ecshop商城教程Ecshop商城教程
ecshop后台分页功能应用实例
亦玉2024-11-28Ecshop商城教程已有人查阅
导读Ecshop分页规则,分以下几个步骤 1.点击类别,获取第一页获取默认分类列表数据 2.点击“下一页”,采用ajax调取分页内容 实例分析(比如订单列表分页admin/order.php)
Ecshop分页规则,分以下几个步骤
1.点击类别,获取第一页获取默认分类列表数据
2.点击“下一页”,采用ajax调取分页内容
实例分析(比如订单列表分页admin/order.php)
1.先写一个function order_list() 模块,里面要包括可以进行排序,分页,查询等功能
2.在order.php里面写一个elseif ($_REQUEST['act'] == 'list') ,这里是显示默认分页数据
3.在order.php写一个query(listtable.js默认的是先读取$_REQUEST['act'] == 'query')排序、分页、查询都在query里面完成
4.html页面(默认order_list.html完整代码)
实战 ”微仓功能“
1.我先写一个function depot_log_list,可以进行排序、分类、查询。这个function里面很有讲究的
重点代码
实例代码
实例代码
分页实例化结构代码
1.点击类别,获取第一页获取默认分类列表数据
2.点击“下一页”,采用ajax调取分页内容
实例分析(比如订单列表分页admin/order.php)
1.先写一个function order_list() 模块,里面要包括可以进行排序,分页,查询等功能
2.在order.php里面写一个elseif ($_REQUEST['act'] == 'list') ,这里是显示默认分页数据
3.在order.php写一个query(listtable.js默认的是先读取$_REQUEST['act'] == 'query')排序、分页、查询都在query里面完成
4.html页面(默认order_list.html完整代码)
实战 ”微仓功能“
1.我先写一个function depot_log_list,可以进行排序、分类、查询。这个function里面很有讲究的
重点代码
function depot_list()
{
//*f.获取上一次保存的查询条件(如果上一次有进行查询过,则直接从f开始)
$result = get_filter();
if ($result === false) {
// a.查询条件
$filter['goods_id'] = empty($_REQUEST['goods_id']) ? '' : trim($_REQUEST['goods_id']);
//b.记录总条数
$filter['record_count'] = $GLOBALS['db']->getOne("SELECT COUNT(*) FROM " . $GLOBALS['ecs']->table('depot_log') . $ex_where);
//c.分页大小
$filter = page_and_size($filter); //d.查询的sql
$sql = "SELECT * FROM " . $GLOBALS['ecs']->table('depot_log') . $ex_where .
" order by createtime desc LIMIT " . $filter['start'] . ',' . $filter['page_size'];
//e.保存查询条件(cookie保存)
set_filter($filter, $sql);
}
else
{
//*f.获取上一次保存的查询条件(如果没有进行查询过,则从a查询。)
$sql = $result['sql'];
$filter = $result['filter']; }
$depot_list = $GLOBALS['db']->getAll($sql);
//g.组合成系统默认查询条件
$arr = array('depot_list' => $depot_list, 'filter' => $filter,
'page_count' => $filter['page_count'], 'record_count' => $filter['record_count']);
return $arr;
}
e.f这两步骤非常的重要,还有if($result===false){}也非常重要实例代码
function depot_list()
{
$result = get_filter();
if ($result === false)
{
$filter['user_id'] = empty($_REQUEST['user_id']) ? '' : trim($_REQUEST['user_id']);
$filter['goods_stock'] = empty($_REQUEST['goods_stock']) ? '' : intval($_REQUEST['goods_stock']);
$filter['sort_by'] = empty($_REQUEST['sort_by']) ? 'goods_stock' : trim($_REQUEST['sort_by']); // js的listTable.sort排序功能,也可以user_id
$filter['sort_order'] = empty($_REQUEST['sort_order']) ? 'DESC' : trim($_REQUEST['sort_order']);
$ex_where = ' WHERE 1 ';
$ex_where .=" AND user_id = '$filter[user_id]' ";
$filter['record_count'] = $GLOBALS['db']->getOne("SELECT COUNT(*) FROM " . $GLOBALS['ecs']->table('depot') . $ex_where);
/* 分页大小 */
$filter = page_and_size($filter);
$sql = "SELECT * FROM " . $GLOBALS['ecs']->table('depot') . $ex_where .
" ORDER by " . $filter['sort_by'] . ' ' . $filter['sort_order'] .
" LIMIT " . $filter['start'] . ',' . $filter['page_size'];
// $filter['keywords'] = stripslashes($filter['keywords']);
set_filter($filter, $sql);
}
else
{
$sql = $result['sql'];
$filter = $result['filter'];
}
$depot_list = $GLOBALS['db']->getAll($sql);
foreach($depot_list as $k=>$v){
$sql = "SELECT goods_name,goods_thumb from ".$GLOBALS['ecs']->table('goods')." where goods_id = ".$v['goods_id'];
$re = $GLOBALS['db']->getRow($sql);
$depot_list[$k]['name'] = $re['goods_name'];
$depot_list[$k]['goods_thumb'] = $re['goods_thumb'];
}
$arr = array('depot_list' => $depot_list, 'filter' => $filter,
'page_count' => $filter['page_count'], 'record_count' => $filter['record_count']);
return $arr;
}
2.写一个列表实例代码
elseif($_REQUEST['act'] == 'depot_log'){
$smarty->assign('ur_here', '个人微仓操作记录');
$depot = depot_log_list();
//print_r($depot);
$smarty->assign('depot_log', $depot['depot_list']);
$smarty->assign('filter', $depot['filter']);
$smarty->assign('record_count', $depot['record_count']);
$smarty->assign('page_count', $depot['page_count']);
$smarty->assign('full_page', 1);
assign_query_info();
$smarty->display('depot_log_list.htm');
}
3.写一个列表查询(这里的depot_log_query ,还可以承接html页面的<a href="javascript:listTable.sort('goods_stock', 'DESC'); ">)
/*会员微仓 ajax 翻页调用*/
elseif ($_REQUEST['act'] == 'depot_list_query'){
$depot = depot_list();
//$depot = user_list();
$smarty->assign('depot', $depot['depot_list']);
$smarty->assign('filter', $depot['filter']);
$smarty->assign('record_count', $depot['record_count']);
$smarty->assign('page_count', $depot['page_count']);
$sort_flag = sort_flag($depot['filter']);
$smarty->assign($sort_flag['tag'], $sort_flag['img']);
make_json_result($smarty->fetch('depot_list.htm'), '', array('filter' => $depot['filter'], 'page_count' => $depot['page_count'])); // 注意此处的结构,缺少mke_json_result不行
}
4.html页面html代码
<table cellpadding="3" cellspacing="1">
<tr>
<th width="80">
<input onclick='listTable.selectAll(this, "checkboxes")' type="checkbox">
{$lang.record_id}{$sort_user_id}
</th>
<th width="60">缩略图</th>
<th>商品名称</th>
<th><a href="javascript:listTable.sort('order_amount', 'DESC'); ">库存</a></th>
<th>{$lang.handler}</th>
<tr>
{foreach from=$depot item=vo}
<tr>
<td><input type="checkbox" name="checkboxes[]" value="{$vo.id}" notice="{if $user.user_money ne 0}1{else}0{/if}"/>{$vo.id}</td>
<td class="first-cell"><a href="../goods.php?id={$vo.id}" target="_blank"><img src="../{$vo.goods_thumb}" width=40 style="border: 1px solid #eee"/></a></td>
<td><span onclick="listTable.edit(this, 'edit_email', {$user.user_id})"><a href="../goods.php?id={$vo.id}" target="_blank">{$vo.goods_name}</a></span></td>
<td align="center">{$vo.goods_stock}</td>
<td align="center">
<a href="users.php?act=depot_log&user_id={$vo.user_id}&goods_id={$vo.goods_id}" title="查看记录"><img src="images/icon_view.gif" border="0" height="21" width="21" /></a>
</td>
</tr>
{foreachelse}
<tr><td class="no-records" colspan="11">{$lang.no_records}</td></tr>
{/foreach}
<tr>
<td colspan="2">
<input type="hidden" name="act" value="batch_remove" />
<input type="submit" id="btnSubmit" value="{$lang.button_remove}" disabled="true" class="button" /></td>
<td align="right" nowrap="true" colspan="9">
{include file="page.htm"}
</td>
</tr>
</table>
js代码
{if $full_page}
</div>
<!-- end users list -->
</form>
<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}
onload = function()
{
//document.forms['searchForm'].elements['keyword'].focus();
// 开始检查订单
startCheckOrder();
//a.listtable.js默认是listTable.query="query",也就是order.php页面的elseif ($_REQUEST['act'] == 'query')
如果不想只想默认的$_REQUEST['act']=='query',就需要写上以下代码
listTable.query = "depot_list_query"; 默认载入使用(第一次点击列表)
}
/**
* 搜索用户
*/
function searchUser()
{
//listTable.filter['keywords'] = Utils.trim(document.forms['searchForm'].elements['keyword'].value);
listTable.filter['page'] = 1;
// b.与a作用一样
listTable.query = "depot_list_query"; 承接上一次查询条件
listTable.loadList();
}
//-->
</script>
{/literal}
{include file="pagefooter.htm"}
{/if}
如果改变了,默认的query查询;则a,b两处都不可以少分页实例化结构代码
Array
(
[depot_list] => Array
(
[0] => Array
(
[id] => 1
[user_id] => 1
[goods_id] => 2
[goods_stock] => 2
[goods_name] => 荷兰Nutrilon牛栏奶粉
)
[1] => Array
(
[id] => 7
[user_id] => 1
[goods_id] => 6
[goods_stock] => 4
[goods_name] => 1111
)
)
[filter] => Array
(
[user_id] => 1
[record_count] => 2
[page_size] => 4
[page] => 1
[page_count] => 1
[start] => 0
)
[page_count] => 1
[record_count] => 2
)
本文标签:
很赞哦! ()
相关教程
图文教程
ecshop批量清除商品精品新品热销等属性
看到这个标题,有朋友会说了,后台不就可以清除吗?的确后台是可以清除的,但是如果你有1万个商品,有500个商品都设置了“精品”属
ecshop后台订单加入商品到订单时提示库存不足请重新选择怎么办
代码号讲解下ECSHOP后台给订单商品信息编辑里面添加商品时提示库存不足请重新选择的BUG问题,ecshop所有版本包含ecshop4.0版本中都出现了这个bug官方未修复
ecshop详细页面颜色尺码等规格和库存相连动的实现方法
上一次我发表了改变商品详细页面属的样式但是在点击每个属的时候库存不根据属的改变而变化现在我们来完善它实现联动库存
ecshop商品详情页goods.php重命名为shangpin.php的方法
有人说,将商品详情页的文件名 goods.php 改一个名字,对百度收录会有帮助,也许吧,这里不讨论是否有帮助,这里只讲解如何重命名。
相关源码
-
(PC+WAP)红色户外岗亭钢结构岗亭pbootcms网站模板为钢结构岗亭、户外设施企业打造的高端响应式营销门户,基于PbootCMS开源内核深度开发,采用HTML5自适应架构,实现PC与移动端数据实时同步展示。查看源码 -
pbootcms模板PC+WAP娱乐新闻资讯类博客网站源码该模板基于PbootCMS内核开发,专为娱乐新闻、健康生活类资讯网站设计,同时支持快速适配其他行业(如企业官网、博客门户等),仅需替换图文内容即可完成转型。查看源码 -
(PC+WAP)蓝色弹簧针厂家探针充电连接器设备网站源码下载基于PbootCMS开发的响应式模板,为弹簧针、探针连接器等电子元器件企业设计。模板采用工业蓝主色调,突出产品技术特性,支持多维度展示连接器产品的规格参数与应用场景,帮助制造企业建立专业线上展示平台。查看源码 -
(自适应)帝国cms7.5文章新闻博客整站源码( 带会员中心)本模板基于帝国CMS内核开发,为新闻资讯、个人博客及作品展示类网站设计。采用响应式布局技术,确保在手机、平板和电脑等不同设备上都能获得良好的浏览体验。查看源码 -
(PC+WAP)蓝色五金机械设备营销型网站源码下载基于PbootCMS内核开发的营销型企业网站模板,为五金机械设备类企业打造,通过标准化数字展示提升客户转化率。模板采用模块化设计,可快速适配机床工具、建筑五金、阀门管件等细分领域。查看源码 -
(自适应)大气壁挂炉暖气设备家用电器模板带加盟申请和下载资料为壁挂炉、暖气片等供暖设备企业设计的PbootCMS模板,通过响应式技术实现跨终端展示产品参数和技术细节。后台统一管理确保采暖系统数据、服务网点信息实时同步更新查看源码
| 分享笔记 (共有 篇笔记) |
