当前位置:首页 » ECShop » ecshop修改商品数量后自动更新购物车
ecshop修改商品数量后自动更新购物车
来自:新思时间:2010-06-13 08:51:55

1.备份并修改模版目录下的 flow.dwt 文件:

(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;
}
复制代码
好啦,大功告成。
关键词:ecshop