勤美堂源码网

ecshop实现将商品批量加入收藏的功能

24小时自助开通VIP,马上拥有站内全部资源 西部数码钻石代理商特价冲量 乐道主机 24小时自助开通VIP,马上拥有站内全部资源

ecshop功能加入收藏目前只能单个的去收藏,但做项目需要我需要用户可以一次选多个进行批量收藏,在网上找了很多没找到可用的于是有了下面代码.

现在正接触着ecshop,最近也是边学边忙着做了一个案例,收获还是挺大的,至少EC现在已经摸熟了,今天分享一个将商品批量加入搜藏的功能,当时做的时候网上找了好多都没找到合适的方法,最后还是自己做出来了,所以说,世上本没有难题,搞清原理了,就什么都不是问题了.

我的思路是:在它自带单个收藏的原理上,加个循环就解决一切了.

1.首先循环出要搜藏商品的id,用一个符号隔开,如 ‘12|5|8|’,到时候传入php处理时候再用 explode() 函数按“|”分割开来,然后循环这些id,就可以实现了.

<a class="joinSave png" href="javascript:collect_all('{foreach from=$goods item=g}{$g.goods_id}|{/foreach}')">加入收藏夹</a> 经过循环后就可以得到类似 <a class="joinSave png" href="javascript:collect_all('12|5|8|')">加入收藏夹</a> 的代码了.

2.然后在 common.js 大概第130行有个 collect(goodsId) 函数,就是添加到搜藏的函数,可以仿照它在它下面添加一个:

/* *  
 *   批量添加商品到收藏夹  
 */  
function collect_all(AllId){  
 Ajax.call('user.php?act=collect_all', 'id=' + AllId, collectResponse, 'GET', 'JSON');  
}

3.最后在 user.php 里面加入下面这段代码就可以了.

/* 批量添加收藏商品(ajax) */  
elseif ($action == 'collect_all'){  
 include_once(ROOT_PATH .'includes/cls_json.php');  
 $json = new JSON();  
 $result = array('error' => 0, 'message' => '');  
 $goods_id = $_GET['id'];  
 $goods_id = explode("|",$goods_id);  
 $goods_id = array_filter($goods_id); //过滤掉数组中空的值  
 if (!isset($_SESSION['user_id']) || $_SESSION['user_id'] == 0){  
  $result['error'] = 1;  
  $result['message'] = $_LANG['login_please'];  
  die($json->encode($result));  
 }  
 else{  
  foreach($goods_id as $goods_id){  
   /* 检查是否已经存在于用户的收藏夹 */  
   $sql = "SELECT COUNT(*) FROM " .$GLOBALS['ecs']->table('collect_goods') . //开源软件:phpfensi.com  
     " WHERE user_id='$_SESSION[user_id]' AND goods_id = '$goods_id'";  
   if ($GLOBALS['db']->GetOne($sql) > 0){}  
   else{  
    $time = gmtime();  
    $sql = "INSERT INTO " .$GLOBALS['ecs']->table('collect_goods'). " (user_id, goods_id, add_time) " .  
      " VALUES ('$_SESSION[user_id]', '$goods_id', '$time')";  
    if ($GLOBALS['db']->query($sql) === false){  
     $result['error'] = 1;  
     $result['message'] = $GLOBALS['db']->errorMsg();  
     die($json->encode($result));  
    }    
   }  
  }  
  $result['error'] = 0;  
  $result['message'] = $GLOBALS['_LANG']['collect_success'];  
  die($json->encode($result));  
 }  
}


本站提供的模板源码,仅供源码爱好者本地电脑环境下学习研究或2次开发使用,部分演示数据仅为网站模板整体美观或属性设置需要,不合适上线运营,下载后请自行24小时内删除数据。我们倡议:站长应该严格遵守互联网法律法规建站,净化网络,站长更有责!!!

发表评论

还没有评论,快来说点什么吧~

联系客服
网站客服 业务合作 Q交流群
51843834
返回顶部
 
QQ在线咨询
客服热线
139-3511-2134