每次用户进入 ecshop
购物流程当需要更改购物车的数量必须手动点击更新按钮,这是非常糟糕的用户体验,我们有必要去改善它。
下面是通过 AJAX
动态更新 ECShop
购物车页面数量的解决方案
- 一、前端页面部分(
flow
.dwt
) - 在商品数量的
input
框添加对应的js
函数 - 在文件最后添加一段
js
function
changePrice
(number
,rec_id
)- {
-
var
attr
=getSelectedAttributes
(document
.forms
[‘ECS_FORMBUY
’]); -
var
qty
=document
.forms
[‘ECS_FORMBUY
’].elements
[‘number
’].value
; - }
function
changePriceResponse
(res
)- {
-
if
(res
.error
> 0) - {
-
document
.getElementById
(‘sysmsg_error
’).innerHTML
=res
.content
; -
document
.all
.sysmsg_error
.style
.display
=”; - }
-
else
- {
-
if
(document
.all
.sysmsg_error
.style
.display
==”) - {
-
document
.all
.sysmsg_error
.style
.display
=’none
’; - }
-
document
.getElementById
(‘subtotal_
’+res
.rec_id
).innerHTML
=res
.subtotal
; -
document
.getElementById
(‘cart_amount
’).innerHTML
=res
.cart_amount
; - }
- }
- 二、在
flow
.php
文件中插入对应的处理代码: elseif
($_REQUEST
[‘step
’] == ‘update_group_cart
’)- {
include_once
(‘includes
/cls_json
.php
’);- $
json
=new
JSON
(); - $
result
=array
(‘error
’ => ”, ‘content
’ => ”); - $
rec_id
= $_GET
[‘rec_id
’]; - $
number
= $_GET
[‘number
’]; - $
group_buy
=group_buy_info
($_SESSION
[‘extension_id
’], $number
); if
(!is_numeric
($number
))- {
- $
result
[‘error
’] = ’1′; - $
result
[‘content
’] =’请输入合法数量’; die
($json
->encode
($result
));- }
- {
- $
result
[‘error
’] = ’1′; - $
restrict_amount
= $group_buy
[‘restrict_amount
’] – $group_buy
[‘valid_goods
’]; - $
result
[‘content
’] =’您最多可买’.$restrict_amount
.’件’; die
($json
->encode
($result
));- }
- $
sql
= “UPDATE
” . $GLOBALS
[‘ecs
’]->table
(‘cart
’) . ”SET
goods_number
= ‘$number
’WHERE
rec_id
= $rec_id
”; - $
GLOBALS
[‘db
’]->query
($sql
); - $
subtotal
= $GLOBALS
[‘db
’]->getONE
(“select
goods_price
*goods_number
AS
subtotal
from
“.$GLOBALS
[‘ecs
’]->table
(‘cart
’).”where
rec_id
= $rec_id
”); - $
cart_amount
=cart_amount
(”,$_SESSION
[‘flow_type
’]); - $
result
[‘subtotal
’] =price_format
($subtotal
,false
); - $
result
[‘cart_amount
’] =price_format
($cart_amount
,false
); - $
result
[‘rec_id
’] = $rec_id
; die
($json
->encode
($result
));- }
- 还等什么?马上清空
echsop
的缓存刷新页面看看效果吧。
转载请注明:汇站网 » 通过 AJAX
方式动态更新 ecshop
购物车页面的商品数量