图书商城购物车模块开发
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8.4 项目实施 8.4.4 修改图书数量
在图书数量文本框中修改图书的数量,单击“修改图 书数量”按钮即可完成图书数量的修改,如图所示。
Leabharlann Baidu
程序运行过程为:当单击“修改图书数量”按钮( <input type="submit" value="修改图书数量" />)时,新 的购买数量被提交给修改图书数量页面( changegwc.php),图书数量修改页面把新的购买数量 替换Session中原购买数量即可。
8.5 技术拓展
8.5.1 时间日期函数
1.时区设置 (1)修改PHP配置文件
在php.ini中找到date.timezone选项,将其值 设置为“RPC”(中华人民共和国)、 “Asia/Shang”(上海)、 “Asia/Chongqing”(重庆)或 “Asia/Urumpi”(乌鲁木齐)中的一个。 在应用程序中,在日期、时间函数之前使用此函 数可以完成对时区的设置,函数语法如下: bool date_default_timezone_set (timezone ) 参数timezone为时区名称,具体值同上。
8.4 项目实施 8.4.5 清空购物车
当单击“清空购物车”超链接时(<a href=“delgwc2.php?id=1”>清空购物车</a>),购 物车管理页面中没有任何图书信息。清空购物车就是 将购物车的Session变量销毁。
8.4 项目实施 8.4.6 生成订单
在购物车管理页面核实完购买图书信息后,单击“结 算”按钮,进入填写收货人信息页面(dingdan.php) ,如图所示。在用户填写完收货地址等信息后,单击 “提交订单”按钮,将订单信息插入到数据库订单表 ,完成生成订单过程。
8.2 项目分析:天天书屋
2.购物车管理
在购物车管理页面用户可以将图书从购物车中移除,修改 购买数量,清空购物车,计算图书总价格,继续购物和结 算功能,如下图所示。
8.2 项目分析:天天书屋
3.生成订单
单击“结算”按钮,进入填写订单信息页面,如图所示。完 成用户等信息填写后,单击“提交订单”按钮,将订单信息 插入到数据库中的订单表,生成订单,完成图书购买。
8.3 技术准备
8.3.1相关函数
array_key_exists()函数 函数用于检查键名是否存在于指定数组中,语法格式如下: bool array_key_exists ( mixed key, array search ) 例8-1
<?php $arr= array('first' =>'PHP', 'second' =>'JSP'); if (array_key_exists('first', $arr)) { echo "键名存在于数组中"; }else{ echo "键名不存在于数组中"; } ?>
补充
8.3.1相关函数
当使用each函数时,数组将跟踪当前元素。若要两次使用该数组 ,则必须使用函数reset重置数组
<?php $arr=array("a"=>"PHP","b"=>"ASP","c"=>"JSP"); while($element=each($arr)) { echo $element[key].'=>'.$element[value]; echo '<br/>'; } reset($arr); while(list($k,$v)=each($arr)) { echo $k.",".$v; echo "<br/>"; } ?>
8.2 项目分析
将图书加入购物车的完整代码
完成上机练习17
8.2 项目分析
任务4:读取购物车Session,显示购物车列表
8.3 技术准备
8.3.1相关函数
list()函数 函数用于将数组中的值赋给一些变量,语法格式如下所示: void list ( mixed varname, mixed ... ) 例8-2
如果有多个版本的书都叫“平凡的世界”怎么办?
$book=array('id'=>10,'name'=>'平凡的世界','price'=>47.2,'num'=>1);
$book=array('id'=>10,'name'=>'平凡的世界', 'num'=>1); $book=array('id'=>10, 'num'=>1);
8.2 项目分析
任务3:将图书加入购物车
<?php session_start(); //开启一个会话 $arr=$_SESSION[“mycar”]; //读取购物车信息 if(isset($_POST[submit])){ if(这本书是否已经在购物车中){ $arr[16]['num']+=1; } else{ $arr[16]=array("id"=>16,"name"=>"php","num"=>1); } } $_SESSION[“mycar”]=$arr; //写回会话 print_r($_SESSION); ?>
8.4 项目实施
8.4.1 购买图书
添加图书至购物车的实现过程为:当单击“购买”按 钮时,将图书编号传给添加图书至购物车页面( addgwc.php),添加图书至购物车页面接收图书购买 页面传递过来的图书编号,根据图书编号查询出图书 相关信息,将图书编号、图书姓名和购买数量等图书 信息保存到一个二维数组中,再将这个二维数组保存 到Session中,因为只有这样才能保证用户购买的图书 信息在不同页面存在。如果我们把二维数组看成是购 物车,那么用户购买的每本图书就是二维数组的一个 元素。关于图书购买数量我们是这样处理的,用户第 一次购买时默认购买数量是1,如果用户重复购买,则 在原购买数量基础上加1。
<?php $arr=array("a"=>"PHP","b"=>"ASP","c"=>"JSP"); $array=each($arr); print_r($array); ?>
补充
8.3.1相关函数
使用each()函数循环显示数组
<?php $arr=array("a"=>"PHP","b"=>"ASP","c"=>"JSP"); while($element=each($arr)) { echo $element[key].'=>'.$element[value]; echo '<br/>'; //echo $element[0].'=>'.$element[1]; } ?>
<?php $arr= array('HTML', 'CSS', 'JavaScript'); list($a,$b,$c) = $arr; //将数组中的所有元素赋给变量 echo $a."--".$b."--".$c; list($a, ,$c) = $arr; //将数组中的部分元素赋给变量 echo $a."--".$c; ?>
8.2 项目分析
任务2:如何表示购物车里面装着N种书?
$book1=array('id'=>16,'name'=>'HTML','num'=>1); $book2=array('id'=>34,'name'=>'CSS','num'=>2); $book3=array('id'=>55,'name'=>'JavaScript','num'=>3);
补充
8.3.1相关函数
使用list()+each()函数循环显示数组
<?php $arr=array("a"=>"PHP","b"=>"ASP","c"=>"JSP"); while(list($k,$v)=each($arr)) { echo $k.",".$v; echo "<br/>"; } ?>
购物车模块功能结构图
开始
添加购物车
图书是以怎样 的方式存入 Session的?
否
购物车中 是否有该 图书
是
添加图书
数量加1 购物车列表
查看购物车
移除图书
修改数量
清空购物车
收银台结账
8.2 项目分析
任务1:如何表示购物车里面的一种书?
$book=array('name'=>'平凡的世界','price'=>47.2,'num'=>1);
8.4 项目实施
下面我们通过Session的方法开发购物车,主要实现添加 图书到购物车,查看购物车,删除购物车中的图书,清空 购物车、修改购买图书的数量和生成订单的功能。
8.4.1 购买图书
在图书展示区,单击相应图书的“购买”或“加入购 物车”按钮,即可将图书信息放入购物车中。完成添 加图书至购物车功能需要创建图书购买和添加图书至 购物车两个页面。购买页面负责显示图书信息,如图 所示。
(2)date_default_timezone_set()函数
8.5 技术拓展 8.5.1 时间日期函数
2.UNIX时间戳 在UNIX系统中,日期和时间表示为1970年1月1日零 点起到当前时间的秒数,这个时间称为UNIX时间戳 。这是大多数计算机表示时间的一种标准格式,用 32位的整数来表示。 mktime()函数:用于将一个时间转换为UNIX时间戳 time()函数:用于获取当前系统的UNIX时间戳 例8-14
8.2 项目分析:天天书屋
4.订单管理
单击“我的订单”按钮,进入订单管理页面,如图所示。 这里我们可以查看和取消订单信息。
8.2 项目分析
开发购物车的方法有两种:
一种是将购物信息存储到数据表中 二种是将购物信息存储到Session变量中
说说看,采用哪种方式比较好?为什么?
8.2 项目分析
PHP+MySQL动态网页技术教程
第8章 图书商城购物车 模块开发
8.1 项目导引:购物车模块
在现实超市中我们是如何购物?
来到超市购买商品,首先我们推上车子,开始选购商品, 将商品放入车中,选购完商品后,到结算中心结算。
在图书商城中如何购物?
来到商城选购图书将图书放入购物车结算下订单 图书商城中所说的购物车的作用也与超市中的车子类似, 用来存放用户选购的商品,那么大家思考一下,用 PHP如何 实现购物车呢?
8.3 技术准备
8.3.1相关函数
each()函数 函数返回数组中当前的键值对,并将数组指针向前移动一步。 函数语法格式如下所示: array each ( array &array ) 键值对被返回为包含四个单元的数组,键名为0、1、key 和value,单元0和key包含有数组的键名,单元1和value 包含有数组的值。 例8-3
索引数组
$arr=array(book1,book2,book3);
关联数组
$arr= array(16=>$book1,34=>$book2,55=>$book3);
$arr[16]=$book1; $arr[34]=$book2;$arr[55]=$book3;
为了查找方便,我们采用关联数组存放购物车的N本书 $arr为二维数组,关键字为id,值为对应的书
8.4 项目实施 8.4.2 查看购物车
当用户购物成功后,进入购物车管理页面,如图所示 。在此可以看到购买的图书信息,包括图书名称、图 书实际价格和购买数量等内容。
在购买图书时,将图书信息信息保存到了Session中, 此时只需从Session中取出这些信息,输出到网页中即 可。
8.4 项目实施 8.4.3 移除图书
在购物车管理页面,当我们单击“取消图书”超链接 时(<a href="delgwc1.php?bookid=<?php echo $row['bookid'];?>">取消图书</a>),即可删除购物 车中的某个图书。 程序运行过程为:单击取消图书时,将取消的图书编 号传给移除图书页面(delgwc1.php),移除图书页面 根据图书编号删除对应的Session变量的值。
8.2 项目分析:天天书屋
购物车是用来储存用户购买的图书,用户可以将选中的图 书添加到购物车中、修改购物车中的图书数量、移除购物 车中的某件图书、清空购物车、查看购买图书的总价格等
1.选购图书
用户完成注册登录,开始选购图书,看到喜欢的图书,单 击“购买”按钮,将图书放入购物车中,同时页面跳转到 购物车管理页面,如图所示。