前端:在你页面上数量那栏增加
<div class="quantity-form"><a href="javascript:void(0)" clstag="cart_num_down" class="decrement disabled" id="decrement_8888_526830_1_1">-</a>
<input autocomplete="off" type="text" class="itxt" value="1" id="changeQuantity_8888_526830_1_1_0" minnum="1">
<a href="javascript:void(0)" clstag="cart_num_up" class="increment" id="increment_8888_526830_1_1_0">+</a>
</div>
你的购物车是个循环列表,可以去得到,每个商品的信息:id是商品
function cart_num_up(id,uid){
$.ajax({
type: "POST",
url: "CART_num.PHP",
data: {id:id, num:-1,uid:uid},
dataType: "json",
success: function(data){
if(data.status==1){
})
})
}
function cart_num_down(id,uid){
$.ajax({
type: "POST",
url: "CART_num.PHP",
data: {id:id, num:1,uid:uid},
dataType: "json",
success: function(data){
if(data.status==1){
})
})
}
点一次 加或减按钮,触发js向后端发起ajax请求:返回的是增加成功和失败状态和剩余数量;
CART_num.PHP
$id = (int)$_POST['id']
$num = (int)$_POST['num']
$uid =(int)$_POST['uid'] //有封装获取post或get函数更好
//查库看库存
$sort = get_kucun_num()
//查看购物车目前数量
$cart_num = get_cart_num(uid,id)
//判断库存
if($sort >$cart_num){
}else{
}
if($num<0){
//减法$sql =“update cart set cart_num = cart_num-1 where uid =uid and id =id ”
if(($cart_num-1)>1){
}else{
}){
//加法 $sql =“update cart set cart_num = cart_num+1 where uid =uid and id =id ”
}else{
//不正确的请求
}
库存是库存,这个存放在一个表,然后购物车信息放在一个表,这样就好的,在商品页面,点击加入购物车的时候, 将这个商品id和用户id插入购物车表就行的 , 如果由业务逻辑,就将库存表数量进行-1 *** 作,这个是update table set count = count - 1 where id = 1 大概这样 的 *** 作
class cart{
/**
* 函数名称: addItem
* 函数功能: 添加商品
* 输入参数: $data ------------- 商品数组
* 函数返回值: none
* 其它说明: 因为数据是记录在session中,所以不用返回
*/
function addItem($data){
global $config_kezhi
if(is_array($data)&&!empty($data)){
foreach($data as $key=>$val){
// 如果商品存在就加数量和价格
if($this->_isExists($key)){
$_SESSION['cart'][$key]["paddy_count"] += $val['paddy_count']
$_SESSION['cart'][$key]["market_count"] += $val['market_count']
$_SESSION['cart'][$key]["goodsnum"] += intval($val['goodsnum'])
$arr = $this->getItems($key)
// $_SESSION['cart'][$key]["count"] += $_SESSION['cart'][$key]["price"]
/* if(strlen($_SESSION['cart'][$key]["kezhi"])>0){//没有刻字,加入刻字
$_SESSION['cart'][$key]["eng_price"]=0
$_SESSION['cart'][$key]["eng_price"]=(int)$config_kezhi*intval($arr['num'])
}else{
//die("dd")
$_SESSION['cart'][$key]["eng_price"]=0
}*/
//echo $arr['num']
//die()
}
// 否则直接加入
else
{
$_SESSION['cart'][$key] = $data[$key]
// $_SESSION['cart'][$key]["name"] = $val['name']
// $_SESSION['cart'][$key]["price"] = $val['price']
// $_SESSION['cart'][$key]["count"] = round($val['price']*intval($val['num']),2)
// $_SESSION['cart'][$key]["num"] = intval($val['num'])
}
}
}
}
/**
* 函数名称: _isExists
* 函数功能: 判断此商品是否存在
* 输入参数: $id ---------- 商品ID
* 函数返回值: bool
* 其他说明: 2004-8-19
*/
function _isExists($id)
{
if(isset($_SESSION['cart'][$id])&&!empty($_SESSION['cart'][$id])&&array_key_exists($id,$_SESSION['cart']))
{
Return true
}
else
{
Return false
}
}
/**
* 函数名称: modItem
* 函数功能: 修改商品数量
* 输入参数: $id -------------- 商品ID
* $num ------------- 商品数量
* 函数返回值: 返回值说明
* 其他说明: 说明
*/
function modItem($id,$num)
{
$arr = $this->getItems($id)
// 如果商品存在就加数量和价格
if($this->_isExists($id))
{
$_SESSION['cart'][$id]["goodsnum"] = intval($num)
if($arr['paddy_price_special'] >"0"){
$_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_price_special']*intval($num),2)
}elseif($arr['paddy_userprice'] >"0"){
$_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_userprice']*intval($num),2)
}elseif($arr['paddy_spreadprice'] >"0"){
$_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_spreadprice']*intval($num),2)
}else{
$_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_price']*intval($num),2)
}
$_SESSION['cart'][$id]["market_count"] = round($arr['market_price']*intval($num),2)
}
}
/**
* 函数名称: modItem_wanwei
* 函数功能: 修改商品腕围
* 输入参数: $id -------------- 商品ID
* $num ------------- 商品腕围
* 函数返回值: 返回值说明
* 其他说明: 说明
*/
function modItem_wanwei($id,$wanwei)
{
$arr = $this->getItems($id)
// 如果商品存在就加数量和价格
if($this->_isExists($id))
{
$_SESSION['cart'][$id]["wanwei"] = intval($wanwei)
///$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($num),2)
}
}
//function modItem_kezhi($id,$kezhi)
//{
//global $config_kezhi
// $arr = $this->getItems($id)
//// 如果商品存在就加数量和价格
//if($this->_isExists($id))
//{
// $_SESSION['cart'][$id]["kezhi"] = $kezhi
//$_SESSION['cart'][$id]['price'] = $arr['price'] + $config_kezhi
// $_SESSION['cart'][$id]['count'] = round($_SESSION['cart'][$id]['price']*intval($arr['num']),2)
//}
//}
function modItem_kezhi($id,$kezhi,$kezhi1="",$kezhi2="")
{
global $config_kezhi
$arr = $this->getItems($id)
// 如果商品存在就加数量和价格
//var_dump($_SESSION['cart'])
// die()
if($this->_isExists($id))
{
if(strlen($_SESSION['cart'][$id]["kezhi"]) == 0 &&strlen($kezhi) != 0){//没有刻字,加入刻字
//$arr['price'] += $config_kezhi
$_SESSION['cart'][$id]["eng_price"]=0
$_SESSION['cart'][$id]["eng_price"]=(int)$config_kezhi*intval($arr['num'])
//$_SESSION['cart'][$id]["price"] = $arr['price']
// $_SESSION['cart'][$id]["count"] = round($arr['price']*intval($arr['num']),2)
$_SESSION['cart'][$id]["kezhi"] = $kezhi
$_SESSION['cart'][$id]["kezhi1"] = $kezhi1
$_SESSION['cart'][$id]["kezhi2"] = $kezhi2
///$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($num),2)
}elseif(strlen($_SESSION['cart'][$id]["kezhi"]) != 0 &&strlen($kezhi) == 0){//有刻字,去除刻字
$_SESSION['cart'][$id]["eng_price"]=0
//$_SESSION['cart'][$id]["eng_price"]-=(int)$config_kezhi*intval($arr['num'])
// $_SESSION['cart'][$id]["eng_price"]-=$config_kezhi
//$_SESSION['cart'][$id]["price"] = $arr['price']
//$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($arr['num']),2)
$_SESSION['cart'][$id]["kezhi"] = $kezhi
$_SESSION['cart'][$id]["kezhi1"] = $kezhi1
$_SESSION['cart'][$id]["kezhi2"] = $kezhi2
}elseif(strlen($_SESSION['cart'][$id]["kezhi"]) != 0 &&strlen($kezhi) != 0){//有刻字,更改刻字
//$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($arr['num']),2)
//$_SESSION['cart'][$id]["eng_price"]=0
$_SESSION['cart'][$id]["eng_price"]=(int)$config_kezhi*intval($arr['num'])
$_SESSION['cart'][$id]["kezhi"] = $kezhi
$_SESSION['cart'][$id]["kezhi1"] = $kezhi1
$_SESSION['cart'][$id]["kezhi2"] = $kezhi2
}
}
}
/**
* 函数名称: getItems
* 函数功能: 取得商品数组
* 输入参数: $id --------------- 某商品的ID
* 函数返回值: array
* 其它说明: 2004-8-19
*/
function getItems($id=null)
{
if(isset($_SESSION['cart']))
{
if($id==null)
{
//print_r($_SESSION['cart'])exit
Return $_SESSION['cart']
}
else
{
Return $_SESSION['cart'][$id]
}
}
}
/**
* 函数名称: emptyItem
* 函数功能: 删除商品
* 输入参数: $id ----------- 商品ID
* 函数返回值: bool
* 其它说明: 2004-8-19
*/
function emptyItem($id=null)
{
if($id==null)
{
unset($_SESSION['cart'])
}
else
{
unset($_SESSION['cart'][$id])
}
}
/**
* 函数名称: sum
* 函数功能: 统计总价
* 输入参数: none
* 函数返回值: int
* 其它说明: 2004-8-19
*/
function sum()
{
$total = 0
if(isset($_SESSION['cart'])&&!empty($_SESSION['cart']))
{
foreach($_SESSION['cart'] as $key=>$val)
{
$total += $val['count']
}
}
Return $total
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)