Heim  >  Artikel  >  php教程  >  仅用PHP4 Session实现的迷你购物篮(二)

仅用PHP4 Session实现的迷你购物篮(二)

WBOY
WBOYOriginal
2016-06-13 10:31:05792Durchsuche

片段3。创建新的篮子并向其中增加一条项目

(做为现在的主流开发语言)

// 将项目计数设为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。填充篮子

(做为现在的主流开发语言)

$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。

(做为现在的主流开发语言)

// 记住在代码片段1中, 决定是不是要增加?
// 让我们在这里重复它
if ($basket!=""){
// 在这里,项目将要加到篮中。让我们检查一下是否存在一个注册过的篮子
if (session_is_registered("ses_basket_items")){
// 存在一个注册过的篮子,将代码片段4放在这里。
// 它增加项目到注册过的篮子中,检查重复记录,更新它们或在数组的最后增加项目
} else {
// 不存在注册过的篮子,将代码片段3放在这里。它创建一个新的篮子,并且
// 通过session注册它。
}
}
// 剩下的都是代码片段2。如果篮子中有物品时用于显示它们。
// 加到这里。

?>

  瞧,不错吧。"cest tout", 法国人会这样说。如果都做好了,你可以保存这个文件为minibasket.inc 并且将其包括到显示商品的php(做为现在的主流开发语言)页面中。

Zip格式的minibasket.inc和basket.php(做为现在的主流开发语言)

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn