热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基于ecshop的移动端etouch实现动态获取分类商品列表

:本篇文章主要介绍了基于ecshop的移动端etouch实现动态获取分类商品列表,对于PHP教程有兴趣的同学可以参考一下。
修改文件 category.php

关键两个地方需要修改

if ($_GET['act'] == 'asynclist') {
        $sayList = array();
        if (is_array($goodslist)) {
            foreach ($goodslist as $vo) {
                $shop_price = empty($vo['promote_price']) ? $vo['shop_price']:$vo['promote_price'];
                $watermark_img = empty($vo['watermark_img']) ? '':'基于ecshop的移动端 etouch实现动态获取分类商品列表.$vo['goods_name'].'" />';
               /* $sayList[] = array(
                    'pro-inner' => '
        

基于ecshop的移动端 etouch实现动态获取分类商品列表.$vo['goods_name'].'">

'.$vo['name'].'

'. $shop_price .'

'.$vo['market_price'].'

月销:'.$vo['sales_count'].'

'.$watermark_img.'

'
);*/ $collectStr = ''; if($vo['collect']){ //如果已经搜藏了那么 $collectStr = '$vo['goods_id'].')">'
; }else{ //如果没有搜藏那么 $collectStr = '$vo['goods_id'].')">'; } $sayList[] = array( 'pro-inner'=>' 基于ecshop的移动端 etouch实现动态获取分类商品列表.$vo['goods_name'].'">

'.$vo['name'].'

'. $shop_price .'

月销:'.$vo['sales_count'].'

'
.$collectStr.'



'
); } } echo json_encode($sayList); exit; }

还有一个叫做 category_get_goods 这个函数此函数新增了一个字段 collect返回字段可以用于前端页面视图渲染的时候实现判断是否已经搜藏 并且根据是否搜藏显示不同的样式和绑定不同的事件函数

/**
 * 获得分类下的商品
 *
 * @access  public
 * @param   string  $children
 * @return  array
 */functioncategory_get_goods($children, $brand, $min, $max, $ext, $size, $page, $sort, $order)
{$display = $GLOBALS['display'];
    $where = "g.is_on_sale = 1 AND g.is_alone_sale = 1 AND ".
            "g.is_delete = 0 AND ($children OR " . get_extension_goods($children) . ')';

    if ($brand > 0)
    {
        $where .=  "AND g.brand_id=$brand ";
    }

    if ($min > 0)
    {
        $where .= " AND g.shop_price >= $min ";
    }

    if ($max > 0)
    {
        $where .= " AND g.shop_price <= $max ";
    }

    /* 获得商品列表 */$sql = 'SELECT g.goods_id, g.goods_name, g.goods_name_style, g.market_price, g.is_new, g.is_best, g.is_hot, g.shop_price AS org_price, ' .
                "IFNULL(mp.user_price, g.shop_price * '$_SESSION[discount]') AS shop_price, g.promote_price, g.goods_type, " .
                'g.promote_start_date, g.promote_end_date, g.goods_brief, g.goods_thumb , g.goods_img ' .
            'FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g ' .
            'LEFT JOIN ' . $GLOBALS['ecs']->table('member_price') . ' AS mp ' .
                "ON mp.goods_id = g.goods_id AND mp.user_rank = '$_SESSION[user_rank]' " .
            "WHERE $where $ext ORDER BY $sort $order";
    $res = $GLOBALS['db']->selectLimit($sql, $size, ($page - 1) * $size);

    $arr = array();
    while ($row = $GLOBALS['db']->fetchRow($res))
    {
        if ($row['promote_price'] > 0)
        {
            $promote_price = bargain_price($row['promote_price'], $row['promote_start_date'], $row['promote_end_date']);
        }
        else
        {
            $promote_price = 0;
        }

        /* 处理商品水印图片 */$watermark_img = '';

        if ($promote_price != 0)
        {
            $watermark_img = "watermark_promote_small";
        }
        elseif ($row['is_new'] != 0)
        {
            $watermark_img = "watermark_new_small";
        }
        elseif ($row['is_best'] != 0)
        {
            $watermark_img = "watermark_best_small";
        }
        elseif ($row['is_hot'] != 0)
        {
            $watermark_img = 'watermark_hot_small';
        }

        if ($watermark_img != '')
        {
            $arr[$row['goods_id']]['watermark_img'] =  $watermark_img;
        }

        $arr[$row['goods_id']]['goods_id']         = $row['goods_id'];
        if($display == 'grid')
        {
            $arr[$row['goods_id']]['goods_name']       = $GLOBALS['_CFG']['goods_name_length'] > 0 ? sub_str($row['goods_name'], $GLOBALS['_CFG']['goods_name_length']) : $row['goods_name'];
        }
        else
        {
            $arr[$row['goods_id']]['goods_name']       = $row['goods_name'];
        }
        $arr[$row['goods_id']]['name']             = $row['goods_name'];
        $arr[$row['goods_id']]['goods_brief']      = $row['goods_brief'];
        $arr[$row['goods_id']]['goods_style_name'] = add_style($row['goods_name'],$row['goods_name_style']);
        $arr[$row['goods_id']]['market_price']     = price_format($row['market_price']);
        $arr[$row['goods_id']]['shop_price']       = price_format($row['shop_price']);
        $arr[$row['goods_id']]['type']             = $row['goods_type'];
        $arr[$row['goods_id']]['promote_price']    = ($promote_price > 0) ? price_format($promote_price) : '';
        $arr[$row['goods_id']]['goods_thumb']      = get_image_path($row['goods_id'], $row['goods_thumb'], true);
        $arr[$row['goods_id']]['goods_img']        = get_image_path($row['goods_id'], $row['goods_img']);
        $arr[$row['goods_id']]['url']              = build_uri('goods', array('gid'=>$row['goods_id']), $row['goods_name']);
        $arr[$row['goods_id']]['sales_count']      = get_sales_volume($row['goods_id']); //显示月销量 by wangif (isset($_SESSION['user_id']) || $_SESSION['user_id'] != 0)
        { 
            /* 检查是否已经存在于用户的收藏夹 */$sql = "SELECT COUNT(*) FROM " .$GLOBALS['ecs']->table('collect_goods') .
                " WHERE user_id='$_SESSION[user_id]' AND goods_id = '".$row['goods_id']."'";

            if ($GLOBALS['db']->GetOne($sql) > 0)
            {

                $arr[$row['goods_id']]['collect'] = 1;
            }
            else
            {
                $arr[$row['goods_id']]['collect'] = 0;
            }

        }else{
            $arr[$row['goods_id']]['collect'] = 0;
        }


    }

    return$arr;
}

客户端js代码参考

/* *

 * 添加商品到收藏夹

 */var _current_collect = null;
var _current_goodsId = 0;

functioncollect(_this,goodsId)
{
  _current_collect = _this;
  _current_goodsId = goodsId;
  jQuery.get('user.php?act=collect',{id:goodsId},collectResponse,"JSON");
}

functionuncollect(_this,goodsId)
{
  _current_collect = _this;
  _current_goodsId = goodsId;
  jQuery.get('user.php?act=uncollect',{id:goodsId},collectResponse,"JSON");
}


/* *

 * 处理收藏商品的反馈信息

 */functioncollectResponse(result)
{if(parseInt(result.error) === 0){
         _current_collect.className = '';
         _current_collect.className ="ycd-font-icon uncollect";
         _current_collect.setAttribute('onclick',"uncollect(this,"+_current_goodsId+")");
         _current_collect.innerHTML = '&#xe63e;';
     }
     if(parseInt(result.error) === 3){

         _current_collect.className = '';
         _current_collect.className ="ycd-font-icon collect";
         _current_collect.setAttribute('onclick',"collect(this,"+_current_goodsId+")");
         _current_collect.innerHTML = '&#xe620;';
     }
    //这里加入成功//注意这里引入了一个自己写的基于zepto移动端函数库的一个插件 请参考我以前写的一篇文章里面有这个插件的代码
    Zepto('body').popup({
            title:'提示信息'
            ,id:'alert'
            ,closeOnOk:true
            ,ok:'确定',
            message:result.message
        }); 

}

总结

以前非常喜欢php 弄过一段时间 所以php代码也是基本上都能够看懂 mysql 也学过
没有php 基础的童鞋可以先去学学php基础
现在博主努力专研前端 后端也在学习 最近学习Javascript 和 html5的新api 这些
记录下自己的工作

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
  • ').text(i)); }; $numbering.fadeIn(1700); }); });

    以上就介绍了基于ecshop的移动端 etouch实现动态获取分类商品列表,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

  • 推荐阅读
    • 二维码的实现与应用
      本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
    • H5技术实现经典游戏《贪吃蛇》
      本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
    • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
    • 解决JavaScript中法语字符排序问题
      在开发一个使用JavaScript、HTML和CSS的Web应用时,遇到从SQLite数据库中提取的法语词汇排序不正确的问题,特别是带重音符号的字母未按预期排序。 ... [详细]
    • 从CodeIgniter中提取图像处理组件
      本指南旨在帮助开发者在未使用CodeIgniter框架的情况下,如何独立使用其强大的图像处理功能,包括图像尺寸调整、创建缩略图、裁剪、旋转及添加水印等。 ... [详细]
    • HTML:  将文件拖拽到此区域 ... [详细]
    • 在处理大数据量的SQL分页查询时,通常需要执行两次查询来分别获取数据和总记录数。本文介绍了一种优化方法,通过单次查询同时返回分页数据和总记录数,从而提高查询效率。 ... [详细]
    • Bootstrap Paginator 分页插件详解与应用
      本文深入探讨了Bootstrap Paginator这款流行的JavaScript分页插件,提供了详细的使用指南和示例代码,旨在帮助开发者更好地理解和利用该工具进行高效的数据展示。 ... [详细]
    • 本文详细介绍了JQuery Mobile框架中特有的事件和方法,帮助开发者更好地理解和应用这些特性,提升移动Web开发的效率。 ... [详细]
    • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
    • 如何将955万数据表的17秒SQL查询优化至300毫秒
      本文详细介绍了通过优化SQL查询策略,成功将一张包含955万条记录的财务流水表的查询时间从17秒缩短至300毫秒的方法。文章不仅提供了具体的SQL优化技巧,还深入探讨了背后的数据库原理。 ... [详细]
    • CentOS下ProFTPD的安装与配置指南
      本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
    • 理解浏览器历史记录(2)hashchange、pushState
      阅读目录1.hashchange2.pushState本文也是一篇基础文章。继上文之后,本打算去研究pushState,偶然在一些信息中发现了锚点变 ... [详细]
    • 本文详细介绍了如何利用 Bootstrap Table 实现数据展示与操作,包括数据加载、表格配置及前后端交互等关键步骤。 ... [详细]
    • 流处理中的计数挑战与解决方案
      本文探讨了在流处理中进行计数的各种技术和挑战,并基于作者在2016年圣何塞举行的Hadoop World大会上的演讲进行了深入分析。文章不仅介绍了传统批处理和Lambda架构的局限性,还详细探讨了流处理架构的优势及其在现代大数据应用中的重要作用。 ... [详细]
    author-avatar
    荒原绿树fy
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有