PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
    您现在的位置: 首页 > CMS教程 > ecshop教程 > 正文

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

    作者:admin来源:网络浏览:时间:2020-09-30 00:07:50我要评论
    导读:ecshop功能加入收藏目前只能单个的去收藏,但做项目需要我需要用户可以一次选多个进行批量收藏,在网上找了很多没找到可用的于是有了下面代码...

    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.  
    11. }

    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') . //b5教程网:http://www.bcty365.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. }
    转载请注明(B5教程网)原文链接:https://b5.mxunkeji.com/content-104-1847-1.html
    相关热词搜索: