ecshop 是自带保藏产品功用的,只可惜只能一次保藏一个,相对于较大一点的购物站点,有或许一次就需要保藏多个产品,完成这样的操作也并不是很难的,只需要在 ecshop 自带保藏功用的基础上小小的更改一下即可,下面夏天博客就来教咱们怎么修正一下吧。
首要循环出要保藏产品的ID,用一个符号进行分离隔,比方‘12|5|8|’,到时分传入 PHP 处理的时分就能够运用 explode() 函数按“|”符号来进行切割分隔,然后再进行循环这些ID,就能够完成了,代码如下:
参加保藏夹
通过循环后就能够得到相似 参加保藏夹 的代码了。
接着翻开 common.js,找到 collect(goodsId) 函数,这个便是保藏的函数了,咱们能够模仿这个函数再从头增加一个函数,实例代码如下:
/** *批量增加产品到保藏夹 */ functioncollect_all(AllId){ Ajax.call('user.php?act=collect_all','id='+AllId,collectResponse,'GET','JSON'); }
最终翻开 user.php 文件,在这个文件里边增加如下代码:
/*批量增加保藏产品(ajax)*/ elseif($action=='collect_all'){ include_once(ROOT_PATH.'includes/cls_json.php'); $json=newJSON(); $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_idas$goods_id){ /*查看是否现已存在于用户的保藏夹*/ $sql="SELECTCOUNT(*)FROM".$GLOBALS['ecs']->table('collect_goods'). "WHEREuser_id='$_SESSION[user_id]'ANDgoods_id='$goods_id'"; if($GLOBALS['db']->GetOne($sql)>0){} else{ $time=gmtime(); $sql="INSERTINTO".$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)); } }
声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益 请联系邮箱:123456@qq.com 我们将配合处理!
原文地址:ecshop二次开发商品批量加入收藏发布于2022-05-23 07:43:51