已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
22.10 购 物 车购物车如图22.29所示,它的实现过程是本章的重点内容。购物车的作用是用来临时储存用户的购物信息。用户可以修改购物车中的商品数量、移除购物车中的某件商品、清空购物车。购物车的实现和数据存储主要是依赖session来实现的,当用户退出购物系统时,购物车中的商品会被自动清空,这个原理与在超市选购商品是一样的。下面将详细介绍购物车的实现过程。图22.29 购物车22.10.1 添加商品至购物车主要技术:count、explode()用户看好一件商品后,但又没有确定买不买时,就可以将商品先放进购物车中。下面将介绍如何将商品添加至购物车。在介绍检测用户登录页面chkuser.php中已经介绍过,当每个用户登录成功后系统将为每个用户分配两个session变量$producelist和$quatity,分别用来存储用户放入购物车中的商品id和这些商品的数量,当然一个变量同一时刻只能有一个值,要实现将多个id值同时保存在一个$producelist变量中,首先将id 转变成字符型变量,并且这些变量用字符“”进行连接,如用户分别将id为1、4、23的商品放入购物车中,这时session变量$producelist的值应该为“1423”,下面的操作只需用函数explode()和函数implode()就可以完成id的提取和连接。实现该过程的代码如下:?phpsession_start();if($_SESSIONusername=) /判断用户是否已经登录 echo alert(请先登录后购物!);history.back(); /如果用户还没登录,则提示用户先登录并返回到原来页面 exit; /用exit语句停止循环的继续执行 $id=strval($_GETid); /获取商品id值 $array=explode(,$_SESSIONproducelist); /将session变量$producelist中的内容用字符“”进行分割,并将结果保存在数组$array中 for($i=0;$icount($array)-1;$i+) if($array$i=$id) /如果$array数组中存在与$id相等的元素,说明该$id所对应的商品已经在购物车中 echo alert(该商品已经在您的购物车中!);history.back(); exit; $_SESSIONproducelist=$_SESSIONproducelist.$id.; /如果该商品不在购物车中,则将该商品的id值连接到session变量$producelist之后,并用“”进行分割 $_SESSIONquatity=$_SESSIONquatity.1; /同时将该商品的数量用“”进行分割保存在session变量$quatity中,并将默认数量设置为1 header(location:gouwu1.php); /添加成功之后将该页定位到gouwu1.php页面显示购物车中的内容?将商品添加至购物车的过程涉及到函数explode()、count()的用法,下面为这两个函数的描述:array explode(string separator,string str)此函数以字符串str中的子串separator作为分割符将字符串分割开来,分割后的一个或多个子串以数组的形式返回。int count(mixed var)count()函数的作用是用来计算变量var中元素的个数,如果变量为空则返回0,变量如果是数组则返回数组元素的个数,如是普通型变量则返回1。说明:上面说到的id指的是shangpin表中的id字段。22.10.2 查看购物车用户选购完商品后,可以通过查看购物车来查看当前用户购物车中的商品信息。购物车如图22.30所示。 查看购物车代码如下:?phpsession_start();if($_SESSIONusername=) /判断用户是否已经登录,否则查看购物车无任何意义, echo alert(请先登录,后购物!);history.back(); exit; /如果用户没登录则停止程序继续执行 ? /将页面左边的用户登录及公告显示模块包括进来 s的购物车?php session_register(total); /注册session变量$total用来保存所有商品价格总和 if($_GETqk=yes) /判断用GET方法提交的qk的值是否为yes,如是则使$producelist和$quatity的值为空串,从而实现清空购物车的目的 $_SESSIONproducelist=; $_SESSIONquatity=; $arraygwc=explode(,$_SESSIONproducelist); /将$producelist用进行分割从而将购物车中现有商品id的值存放到数组$arraygwuc中$s=0; /用$s保存购物车中商品id的总和for($i=0;$icount($arraygwc);$i+) $s+=intval($arraygwc$i); if($s=0 ) /如果$s的值为空,则说明购物车中无商品 echo ; echo 您的购物车为空!; echo; else /如果$s的值不为空,则显示购物车中所有商品信息 ? /显示购物车中商品信息,代码请详见本书附带光盘主要技术:implode()22.10.3 从购物车中移去指定商品该模块实现的基本思想是:首先用函数explode()将session变量$producelist以“”进行分割,并把分割出的子串存放到数组中,之后将用户移去的商品对应的数组元素赋予空值,最后将数组元素重新组合成新串。该模块详细代码如下:?php $id=$_GETid; /获取用户打算移去商品的id session_start();$arraysp=explode(,$_SESSIONproducelist); $arraysl=explode(,$_SESSIONquatity); /分别将购物车中的商品id和对应商品的数量存放到数组$arraysp和$arraysl中 for($i=0;$i /省略了HTML标记,请参看本书附带光盘上述代码涉及到函数implode()的用法:string implode(string glue,array pieces)此函数的作用与explode()函数的功能恰恰相反,其作用是将数组pieces中的元素以字符glue相连,从而形成一个新字符串。22.10.4 修改商品购买数量购物车中的商品默认数量是1件,如果用户打算购买多件相同的商品就需要利用修改商品购买数量这一模块来实现。修改商品数量与从购物车中移去指定商品的原理类似,只不过从购物车中移去某件商品是将该商品对应的数组元素赋予空值,而修改商品购买数量是将购物车中某件商品对应的数组元素赋于新值。实现该功能的代码如下:while(list($name,$value)=each($_POST) /提取表单中的商品id和新数量 for($i=0;$icount($array)-1;$i+) if($array$i)=$name) $arrayquatity$i=$value; /获取购物车中每种商品的数量,并将数量保存到$arrayquatity数组中 购物车中用于输入商品数量的文本框是用商品id来命名的,所以通过语句list($name,$value)=each($_POST)赋值就使$name为购物车中某件商品的id,而$value为该商品对应的数量,之后通过循环处理将$value赋予新的数量就可以实现该模块。22.10.5 清空购物车当用户重新选购商品时,就需要清空购物车中所有商品,该功能实现的基本思想是:将session变量$producelist和$quatity的值都赋予空串。该过程代码如下:if($_GETqk=yes) /判断用户是否点击”清空购物车” $_SESSIONproducelist=; /清空购物车中商品id $_SESSIONquatity=; /清空购物车中商品数量22.10.6 收银台结账用户确定要购买购物车中所有商品之后,就需要到收银台页面填写收货人信息,系统管理人员将通过该信息确定收货人地址、商品名称及数量等,同时系统会根据这些信息给出订单。收银台页面如图22.31所示。具体实现代码如下:图22.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年江西省鹰潭市单招职业倾向性考试题库及参考答案详解满分必刷
- 2025年芯原笔试题及答案
- 借款协议合同范本
- 2024年河间市二级建造师考试《机电工程管理与实务》深度自测卷及
- 2025年初级会计职称考试题库(附答案)
- 2025年苏州工业职业技术学院单招职业适应性考试题库附答案详解
- 基孔肯雅热防控技术指南(2025年版)学习考核试题含答案
- 2025年三类人员安全员C证继续教育模拟考试题库含参考答案
- 2025年河北省沙河市辅警招聘考试试题题库及参考答案详解(研优卷)
- 2022年江西省公务员考试真题答案
- 标杆工程创建指导手册(可编辑版)
- 2025年全国共青团“新团员入团”应知应会知识考试试卷及完整答案详解【有一套】
- 质量管理体系文件培训考核试卷(附答案)
- 2025年养老护理员中级理论知识考试题库及答案(共400题)
- 建设工程分部分项工程划分表
- 右室心肌梗死课件
- 工程招投标与合同管理:成本加酬金合同课件
- 苗木种植费用(全费用)
- GB∕T 19557.15-2018 植物品种特异性、一致性和稳定性测试指南 高粱
- 否定前缀练习
- 《测绘法》知识题库
评论
0/150
提交评论