ecshop 是自帶收藏商品功能的,只可惜只能一次收藏一個,相對于較大一點的購物站點,有可能一次就需要收藏多個商品,實現(xiàn)這樣的操作也并不是很難的,只需要在 ecshop 自帶收藏功能的基礎(chǔ)上小小的更改一下即可,下面夏日博客就來教大家如何修改一下吧。
首先循環(huán)出要收藏商品的ID,用一個符號進行分隔開,比如‘12|5|8|’,到時候傳入 PHP 處理的時候就可以使用 explode() 函數(shù)按“|”符號來進行分割分開,然后再進行循環(huán)這些ID,就可以實現(xiàn)了,代碼如下:
加入收藏夾
經(jīng)過循環(huán)后就可以得到類似 加入收藏夾 的代碼了。
接著打開 common.js,找到 collect(goodsId) 函數(shù),這個就是收藏的函數(shù)了,我們可以仿照這個函數(shù)再重新添加一個函數(shù),實例代碼如下:
/* * * 批量添加商品到收藏夾 */ function collect_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 = new JSON(); $result = array('error' => 0, 'message' => ''); $goods_id = $_GET['id']; $goods_id = explode("|",$goods_id); $goods_id = array_filter($goods_id); //過濾掉數(shù)組中空的值 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){ /* 檢查是否已經(jīng)存在于用戶的收藏夾 */ $sql = "SELECT COUNT(*) FROM " .$GLOBALS['ecs']->table('collect_goods') . " 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)); } }
版權(quán)聲明: 本站資源均來自互聯(lián)網(wǎng)或會員發(fā)布,如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除!謝謝!
轉(zhuǎn)載請注明: ecshop二次開發(fā)商品批量加入收藏