有下角悬浮购物车,点击“加入购物车”AJAX更新悬浮购物车数量

2016-07-07 14:55 来源:www.chinab4c.com 作者:ecshop专家

1,先做一个右下角悬浮的div,css如下加到css文件中:
/*右下角浮动购物车 css liangfang add*/
#right_cart{
position:fixed;
bottom:0;
right:0px;
background:#009900;
width:198px;
height:24px;
line-height:24px;
z-index:9999;
/*opacity:.60;
filter:alpha(opacity=80);*/
}
#cart_number{
height:24px;
width:145px;
background:#009900;
text-align:center;
float:left;
}
如下的div
<div id="right_cart">
<div id="cart_number">{insert name='cart_info'}</div>
<div style="float:right; background:#003333; width:50px;text-align:center;">
<a href="flow.php?step=checkout" title="去结算" style="color:#FFFFFF">去结算</a>
</div>
</div>
显示效果:


不喜欢的朋友直接找美工做个背景图

2,为了得到购物车中商品的总价,我把insert_cart_info函数改了一句话,默认的是不能返回总价的,

/**
* 调用购物车信息
*
* @accesspublic
* @returnstring
*/
function insert_cart_info()
{

$sql = 'SELECT SUM(goods_number) AS number, SUM(goods_price * goods_number) AS amount' .
' FROM ' . $GLOBALS['ecs']->table('cart') .
" WHERE session_id = '" . SESS_ID . "' AND rec_type = '" . CART_GENERAL_GOODS . "'";
$row = $GLOBALS['db']->GetRow($sql);

if ($row)
{
$number = intval($row['number']);
$amount = floatval($row['amount']);
}
else
{
$number = 0;
$amount = 0;
}

$str = sprintf($GLOBALS['_LANG']['cart_info'], $number,$amount );//price_format($amount, false) 这个函数不能被调用,可能是没有包含进来,并且也没有用,因为sprintf 就已经可以格式化小数了 liangfang edit

return '<a href="flow.php" class="view_cart" title="' . $GLOBALS['_LANG']['view_cart'] . '">' . $str . '</a>';
}

3,打开语言包中的common.php
改一句话
$_LANG['cart_info'] = '购物车中有<font color="#FF0000"><strong> %d </strong></font>件商品 ';//¥%.2f 地方小显示不出来,先注释 liangfang edit

大家注意下,¥%.2f 这个就是总价,但是我的购物车宽度不够,我没让他显示出来。如果需要可以加上

4,修改加入购物车函数,

/* *
* 处理添加商品到购物车的回调函数addToCartResp**e 大家特别要注意,改这个函数必须先重命名一个同样功能的函数,以便另外一个函数能实现立即加入购物车的功能,并且后台购物流程是“立即加入购物车”。
*/
function addToCartResp**e(result)
{
if (result.error > 0)
{
// 如果需要缺货登记,跳转
if (result.error == 2)
{
if (confirm(result.message))
{
location.href = 'user.php?act=add_booking&id=' + result.goods_id + '&spec=' + result.product_spec;
}
}
// 没选规格,弹出属性选择框
else if (result.error == 6)
{
openSpeDiv(result.message, result.goods_id, result.parent);
}
else
{
alert(result.message);
}
}
else
{
var cartInfo = document.getElementById('ECS_CARTINFO');
var cart_url = 'flow.php?step=cart';
if (cartInfo)
{
cartInfo.innerHTML = result.content;
}

if (result.one_step_buy == '1')
{
location.href = cart_url;
}
else
{

var cart_str = document.getElementById('cart_number');
cart_str.innerHTML = '<a href="flow.php">购物车中有<font color="#FF0000"><strong> '+result.goods_number+' </strong></font>件商品 </a>';

/*如果支持jquery 的 animate 可以在这个地方加动画效果*/


}
}
}
有疑问可加我qq 9468802

回答:
这个不错,谢谢分享