当前位置:首页 > CMS教程 > ecshop > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2014-12-06 10:49:51 浏览: 评论:0 

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) 函数,就是添加到搜藏的函数,可以仿照它在它下面添加一个:

  1. /* * 
  2.  
  3.  *   批量添加商品到收藏夹 
  4.  
  5.  */ 
  6.  
  7. function collect_all(AllId){ 
  8.  
  9.  Ajax.call('user.php?act=collect_all''id=' + AllId, collectResponse, 'GET''JSON'); 
  10.  

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

  1. /* 批量添加收藏商品(ajax) */ 
  2.  
  3. elseif ($action == 'collect_all'){ 
  4.  
  5.  include_once(ROOT_PATH .'includes/cls_json.php'); 
  6.  
  7.  $json = new JSON(); 
  8.  
  9.  $result = array('error' => 0, 'message' => ''); 
  10.  
  11.  $goods_id = $_GET['id']; 
  12.  
  13.  $goods_id = explode("|",$goods_id); 
  14.  
  15.  $goods_id = array_filter($goods_id); //过滤掉数组中空的值 
  16.  
  17.  
  18.  
  19.  
  20.  if (!isset($_SESSION['user_id']) || $_SESSION['user_id'] == 0){ 
  21.  
  22.   $result['error'] = 1; 
  23.  
  24.   $result['message'] = $_LANG['login_please']; 
  25.  
  26.   die($json->encode($result)); 
  27.  
  28.  } 
  29.  
  30.  else
  31.  
  32.   foreach($goods_id as $goods_id){ 
  33.  
  34.    /* 检查是否已经存在于用户的收藏夹 */ 
  35.  
  36.    $sql = "SELECT COUNT(*) FROM " .$GLOBALS['ecs']->table('collect_goods') . //开源软件:phpfensi.com 
  37.  
  38.      " WHERE user_id='$_SESSION[user_id]' AND goods_id = '$goods_id'"
  39.  
  40.    if ($GLOBALS['db']->GetOne($sql) > 0){} 
  41.  
  42.    else
  43.  
  44.     $time = gmtime(); 
  45.  
  46.     $sql = "INSERT INTO " .$GLOBALS['ecs']->table('collect_goods'). " (user_id, goods_id, add_time) " . 
  47.  
  48.       " VALUES ('$_SESSION[user_id]', '$goods_id', '$time')"
  49.  
  50.  
  51.  
  52.  
  53.     if ($GLOBALS['db']->query($sql) === false){ 
  54.  
  55.      $result['error'] = 1; 
  56.  
  57.      $result['message'] = $GLOBALS['db']->errorMsg(); 
  58.  
  59.      die($json->encode($result)); 
  60.  
  61.     }   
  62.  
  63.    } 
  64.  
  65.   } 
  66.  
  67.   $result['error'] = 0; 
  68.  
  69.   $result['message'] = $GLOBALS['_LANG']['collect_success']; 
  70.  
  71.   die($json->encode($result)); 
  72.  
  73.  } 
  74.  
  75. }

Tags: ecshop功能商品 ecshop批量收藏

分享到: