5.1.3查看购物车功能模块
当客户要查看购物车时,系统开列他们放入购物车中的所有物品的清单包括商品名称、商品的单价、购买的数量和价格合计等。
PHP主要功能函数代码如下:
function get_cart_items() {
/* 返回购物车的各物品清单 */
global $SESSION;
$in_clause = $SESSION["cart"]->get_productid_list();
if (empty($in_clause)) {
return false;
}
return db_query("SELECT id, name, price FROM products WHERE id IN ($in_clause)");
}
/* 调用get_cart_items()函数*/
$qid = get_cart_items();
$count=0;
while ($prod = db_fetch_object($qid)) {
$qty = $SESSION["cart"]->items[$prod->id];
$total = $prod->price * $qty;
print "&thread".$count."prod_id=".$prod->id;
print "&thread".$count."prod_name=".$prod->name;
print "&thread".$count."prod_price=".$prod->price;
print "&thread".$count."prod_qty=".$qty;
print "&thread".$count."sub_totalprice=".sprintf("%01.2f", $total);
$count++;
}
print "&threadCount=".$count--;
print "&totalprice=".sprintf("%01.2f", $SESSION["cart"]->total);
print "&result=Okay";
Flash ActionScript主要功能函数代码如下:
nextY = 0;
//根据PHP端的threadCount值生成购物车的购物项
for (count=0; count<threadCount; count++) {
// 从“shoppingcart_data” MC复制并生成新的“thread”mc
shoppingCanvas.attachMovie("shoppingcart_data", "thread"+count, count);
//设置“thread”mc的 X and Y轴的位置
shoppingCanvas["thread"+count]._x = 150;
shoppingCanvas["thread"+count]._y = nextY;
//对每个“thread”mc的各个文本域进行赋值
shoppingCanvas["thread"+count].prod_id=this["thread"+count+"prod_id"];
shoppingCanvas["thread"+count].prod_name = this["thread"+count+"prod_name"];
shoppingCanvas["thread"+count].prod_price = this["thread"+count+"prod_price"];
shoppingCanvas["thread"+count].prod_qty = this["thread"+count+"prod_qty"];
shoppingCanvas["thread"+count].sub_totalprice = this["thread"+count+"sub_totalprice"];
//设置下一个“thread”mc的y轴的位置
nextY += shoppingCanvas["thread"+count]._height + 3;
}
5.1.4购物车更新功能模块
购物车的更新功能模块包括两项功能:
(1)根据客户在商品数量文本域中输入的数值更新商品的定购数目。
(2)删除客户决定不购买的商品。
PHP主要功能函数代码如下:
function update_qty(&$form) {
/* 通过Flash端传送过来的HTTP_POST_VARS[$id]和HTTP_POST_VARS[$qty]两个变量更新购物车*/
global $SESSION;
for ($i=0;$i<$form["count"];$i++){
$id="id".$i;
$qty="qty".$i;
$productid=$form[$id];
if ($form[$qty] != "0"){
$qty = $form[$qty];
/*更新购物车的购物项的定购数目*/
$SESSION["cart"]->set($productid, $qty);
}
else {
/*删除客户决定不要的购物项*/
$SESSION["cart"]->remove($productid);
}
}
}
Flash ActionScript主要功能函数代码如下:
on (release) {
count = 0;
//删除所有购物项以更新购物车
for (count=0; count<threadCount; count++) {
this["id"+count] = shoppingCanvas["thread"+count].prod_id;
if (shoppingCanvas["thread"+count].del.checked == true || shoppingCanvas["thread"+count].prod_qty == 0) {
this["qty"+count] = "0";
} else {
this["qty"+count] = shoppingCanvas["thread"+count].prod_qty;
}
removeMovieClip("shoppingCanvas.thread"+count);
}
//重置商品总价和购物项数
totalprice = "";
threadCount = 0;
//调用cart_view.php文件实现更新购物车
loadVariables("shopping/cart_view.php?func=recalc", this, "POST");
gotoAndStop("loading");
}
5.1.5购物车清空功能模块
如果出于某种原因客户什么都不想买,客户可以点击“清空购物车”按钮,系统调用购物车对象的init()函数清空购物车中的所有购物项。系统清空购物车后给出提示,并跳转到商品货架页。
PHP主要功能函数代码如下:
$SESSION["cart"]->init();
function init() {
/* 初始化和重置购物车 */
$this->items = array();
$this->total = 0;