top
Loading...
僅用PHP4Session實現的迷你購物籃(二)
作者:Evert Smith 翻譯:limodou

片段3。創建新的籃子并向其中增加一條項目

<?php

// 將項目計數設為1
$ses_basket_items=1;

// 填充4個數組的第0個位置,使用從href鏈接傳過來的值
// 鏈接是在‘給你的頁面增加鏈接’部分所講的
$ses_basket_name[0]=$basket;
$ses_basket_amount[0]=1;
$ses_basket_price[0]=$price;
$ses_basket_id[0]=$id;

// 在session中注冊新的籃子
session_register("ses_basket_items");
session_register("ses_basket_name");
session_register("ses_basket_amount");
session_register("ses_basket_price");
session_register("ses_basket_id");

?>

這樣將創建一個籃子,將所以的值填在數組第0個位置上,并利用session注冊數組。一個籃子誕生了。


片段4。填充籃子

<?php

$basket_position_counter=0; //籃子中的位置
$double=0; //雙重入口標志設為NO
if ($ses_basket_items>0){
// 檢查是否籃子包含的項目中有雙重入口
foreach ($ses_basket_name as $basket_item){
// 遍歷數組所包含的名字,檢查是否與從href所傳來的相配匹
if ($basket_item==$basket){
// 如果在籃子中已經有了一個項目,將flag設為1
$double=1;
// 記住項目的位置,將進行更新
$basket_position=$basket_position_counter;
}
$basket_position_counter++; //增加籃子中的實際位置
}
}

// 更新籃子
if ($double==1){
// 如果項目在你的籃子中已經存在則更新在$basket_position處理的數量和位置
$oldamount=$ses_basket_amount[$basket_position];
$ses_basket_amount[$basket_position]++;
$amount=$ses_basket_amount[$basket_position];
$oldprice=$ses_basket_price[$basket_position];
//更新價格
$newprice=($oldprice/$oldamount)*$amount;
$ses_basket_price[$basket_position]=$newprice;
}else{
// 如果它不在你的籃子中,則在數組末尾增加新的項目
$ses_basket_name[]=$basket;
$ses_basket_amount[]=1;
$ses_basket_price[]=$price;
$ses_basket_id[]=$id;
$ses_basket_items++;
}

?>

太好了,現在你可以填充迷你購物籃并顯示它了。

將代碼片斷組織到一起

讓我們將代碼組織到一起并且存為minibasket.inc。

<?php

// 記住在代碼片段1中, 決定是不是要增加?
// 讓我們在這里重復它
if ($basket!=""){
// 在這里,項目將要加到籃中。讓我們檢查一下是否存在一個注冊過的籃子
if (session_is_registered("ses_basket_items")){
// 存在一個注冊過的籃子,將代碼片段4放在這里。
// 它增加項目到注冊過的籃子中,檢查重復記錄,更新它們或在數組的最后增加項目
} else {
// 不存在注冊過的籃子,將代碼片段3放在這里。它創建一個新的籃子,并且
// 通過session注冊它。
}
}
// 剩下的都是代碼片段2。如果籃子中有物品時用于顯示它們。
// 加到這里。

?>

瞧,不錯吧。"c'est tout", 法國人會這樣說。如果都做好了,你可以保存這個文件為minibasket.inc
并且將其包括到顯示商品的PHP頁面中。

Zip格式的minibasket.inc和basket.php

上一頁

轉自:PHPBuilder.com

北斗有巢氏 有巢氏北斗