1. 程式人生 > >ecshop修改商品數量後自動更新購物車

ecshop修改商品數量後自動更新購物車

(1) 在<head>之間新增一段JS,用於取代更新按鈕實現表單提交:
<script type="text/javascript">
function formSubmit()
{
document.getElementById("formCart").submit();
}
</script>
複製程式碼
(2) 在<body>之間找到諸如以下程式碼:
<!-- {if $goods.goods_id gt 0 && $goods.is_gift eq 0 && $goods.parent_id eq 0} 普通商品可修改數量 -->
<input type="text" name="goods_number[{$goods.rec_id}]" id="goods_number_{$goods.rec_id}" value="{$goods.goods_number}" size="4" class="inputBg" style="text-align:center " onkeydown="showdiv(this)"/>
複製程式碼
將 改成物件失去焦點時觸發事件:onblur="formSubmit()" ,如:
<!-- {if $goods.goods_id gt 0 && $goods.is_gift eq 0 && $goods.parent_id eq 0} 普通商品可修改數量 -->
<input type="text" name="goods_number[{$goods.rec_id}]" id="goods_number_{$goods.rec_id}" value="{$goods.goods_number}" size="4" class="inputBg" style="text-align:center " onblur="formSubmit()"/>
複製程式碼
(3) 再找到下面的程式碼:

<input name="submit" type="submit" class="bnt_blue_1" value="{$lang.update_cart}" />
複製程式碼
把這段程式碼刪掉,就等於把“更新購物車”這個按鈕刪掉了。如果想保留該按鈕,一定要把name="submit"中的submit改成其他名字,否則在firebug下會報“submit is not a function”錯誤。原因是<form>之間如果有name="submit"的元素話,在用document.getElementById("formCart").submit()提交表單的時候,該元素會和submit()方法發生混淆造成該錯誤。

2.備份並修改根目錄下的 flow.php 檔案:
找到以下程式碼:
elseif ($_REQUEST['step'] == 'update_cart')
複製程式碼
把show_message($_LANG['update_cart_notice'], $_LANG['back_to_cart'], 'flow.php');整行註釋掉,
在它上面新增一行程式碼:ecs_header("Location: flow.php/n");
用於實現更新購物車自動跳轉回詳細頁,如:
elseif ($_REQUEST['step'] == 'update_cart')
{
/*------------------------------------------------------ */
//-- 更新購物車
/*------------------------------------------------------ */

if (isset($_POST['goods_number']) && is_array($_POST['goods_number']))
{
flow_update_cart($_POST['goods_number']);
}
ecs_header("Location: flow.php/n");
// show_message($_LANG['update_cart_notice'], $_LANG['back_to_cart'], 'flow.php');
exit;
}
複製程式碼
好啦,大功告成。