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

相关推荐