用ASP编写购物车代码
网上购物已成为生活的潮流,在网上购物之后,想要随时查看自己已买的东西,想要随时删除或改动某件商品数量,要怎么做呢?以下我就来写代码及释义。先来做用户登陆页面(login.asp):
<html>
<head>
<title>购物车的实现</title>
</head>
<body>
<formmethod="post"action="check.asp">
<tablewidth="200"border="1">
<tr><tdwidth="107">username:</td>
<tdwidth="77"><inputtype="text"name="username"id="username"/></td></tr>
<tr><td>password:</td>
<td><inputtype="password"name="userpass"id="userpass"/></td></tr>
<tr><tdcolspan="2"><inputtype="submit"value="登录"></td>
</tr>
</table>
</form>
</body>
</html>
然后来写接收用户所填写的信息以检查是否存在该用户的页面(check.asp),假设存在该用户,那么就跳到购物的首页(index.asp):
<%
uname=request.Form("username")
upass=request.Form("userpass")
sql="select*fromuserswhereuname='"&uname&"'andupass='"&upass&"'"
setrs=server.CreateObject("adodb.recordset")
rs.opensql,conn,3,1
ifnotrs.eofthen
用户登陆成功之后,将username放入session里,并给用户分配一个订单,就像去超市购物推着一个购物车,此时这个购物车是属于你的,用username和系统时间作为购物车的名字,然后跳转到购物首页。
session("name")=uname
session("orderid")=time&uname
response.Redirect("index.asp")
else
%>
<script>
alert("username或password不对!");
history.back();
</script>
<%
endif
rs.close
setrs=nothing
conn.close
setconn=nothing
%>
那么,接下来就是购物的首页(index.asp)了
<!--#includefile="inc/conn.asp"-->
<html>
<head>
以下用css样式表将表格里的字体统一设置为14号字
<styletype="text/css">‘
<!--
table{
font-size:14px;
}
-->
</style>
</head>
<body>
<%
假设用户没登陆就直接打开购物首页,那么就跳转到登陆页面
ifsession("name")=""then
response.Redirect("login.asp")
endif
%>
做一个搜索的文本框,方便用户搜索商品。其原理是这种:用户填入要搜索的商品后,通过表单提交到本页面,从数据库中查找像用户填写的字符串的商品,再显示出来
<formmethod="post"action="index.asp">
<inputtype="text"size="15"name="search"id="search"/><inputtype="submit"value="搜索"/>
</form>
<%
searchname=request.Form("search")‘得到用户填写的字符串
sql="select*fromproductswherepnamelike'%"&searchname&"%'"‘写sql语句,查找出结果
setrs=server.CreateObject("adodb.recordset")‘设置一个结果集对象
rs.opensql,conn,3,1
whilenotrs.eof‘循环输出商品的相关信息
%>
每一个商品以下都有一个购买button,须要做一个表单
<formmethod="post"action="buy.asp">
<tablestyle="float:left">
<tr>
<tdwidth="103"rowspan="3"><ahref="product.asp?id=<%=rs(0)%>"><imgsrc="images/<%=rs(2)%>"width="100"height="100"border="0"></a><inputtype="hidden"name="id"value="<%=rs(0)%>"><inputtype="hidden"name="price"value="<%=rs(3)%>"/></td>
<tdwidth="107">名称:
<%=rs(1)%></td>
</tr>
<tr>
<td>价格:<%=rs(3)%></td>
</tr>
<tr>
<tdalign="center"><inputtype="submit"name="buy"value="购买"/></td>
</tr>
</table>
</form>
<%
rs.movenext‘指向下一个记录
wend
rs.close
setrs=nothing
conn.close
setconn=nothing
%>
</body>
</html>
假设用户想要查看商品更具体的信息,那么就应该将商品图片做成一个超链接,连接到product.asp,在该页面显示具体信息。在该页面也有一个购买button,点击之后相同跳到buy.asp:
<!--#includefile="inc/conn.asp"-->
<body>
<%
pid=request.QueryString("id")
response.Write(pid)
sql="select*fromproductswherepid="&pid
setrs=server.CreateObject("adodb.recordset")
rs.opensql,conn,3,1
ifnotrs.eofthen
%>
<tablewidth="387"height="119">
<tr>
<tdwidth="120"rowspan="4"><imgsrc="images/<%=rs(2)%>"width="100"height="100"></td>
<tdwidth="276">名称:<%=rs(1)%></td>
</tr>
<tr>
<td>价格:<%=rs(3)%></td>
</tr>
<tr>
<tdheight="30"><%=rs(4)%></td>
</tr>
<tr>
<tdalign="center"><inputtype="button"onclick="javascript:location.href='buy.asp?id=<%=rs(0)%>&price=<%=rs(3)%>'"value="购买"></td>‘点击购买之后触发一个onclick事件,跳转到buy.asp
</tr>
</table>
<%
endif
rs.close
setrs=nothing
conn.close
setconn=nothing
%>
</body>
</html>
用户点击了购买以后,将该商品的id传到buy.asp,以下来写buy.asp的代码:
<!--#includefile="inc/conn.asp"-->‘将连接数据库的字符串包括进来
<%
pid=request("id")‘得到商品的id
price=request("price")‘得到商品的价格
sql="select*frommrcarwherepid="&pid&"andorderid='"&session("orderid")&"'"‘写sql语句来查询
setrs=server.CreateObject("adodb.recordset")
rs.opensql,conn,3,1
假设用户所要购买的商品已经买过,那么就直接在原来的基础上加1,否则的话,就插入记录
ifnotrs.eofthen
sql="updatemrcarsetpcount=pcount+1wherepid='"&pid&"'andorderid='"&session("orderid")&"'"
conn.executesql
response.Redirect("mycar.asp")
else
sql="insertintomrcar(orderid,pid,price,pcount)values('"&session("orderid")&"',"&pid&","&price&",1)"
conn.executesql
response.Redirect("mycar.asp")
endif
rs.close
setrs=nothing
conn.close
setconn=nothing
%>
运行完了sql语句之后将跳转到购物车页面(mycar.asp),显示出用户所购买的商品。而且有改动数量的button和删除的超链接
<!--#includefile="inc/conn.asp"-->
<%
sql="selecta.*,b.pnamefrommrcara,productsbwhereorderid='"&session("orderid")&"'anda.pid=b.pid"
setrs=server.CreateObject("adodb.recordset")
rs.opensql,conn,3,1
%>
<formmethod="post"action="update.asp"name="form1">
<tableborder="1">
<tr><td>orderid</td>
<td>商品名称</td>
<td>商品id</td>
<td>单位价格</td>
<td>数量</td>
<td>删除</td>
<td>改动</td>
</tr>
<%
sum=0
i=1‘这里的i值到后边有介绍
whilenotrs.eof‘将所购买的商品循环输出
%>
<tr><td><%=session("orderid")%></td>
<td><%=rs("pname")%></td>
<td><%=rs(1)%></td>
<td><%=rs(2)%></td>
<td><inputtype="text"size="10"value="<%=rs(3)%>"name="pcount"></td>
<td><ahref="delete.asp?id=<%=rs(1)%>">删除</a></td>
<td><inputtype="button"onclick="javascript:document.form1.action='update.asp?rowcount=<%=i%>&pid=<%=rs(1)%>';document.form1.submit();"value="确认改动"></td>
</tr>
<%
i=i+1
sum=sum+cint(rs(2))*rs(3)‘计算总价格
rs.movenext
wend
rs.close
setrs=nothing
conn.close
setconn=nothing
%>
</table>
</form>
<ahref="index.asp">返回继续购物</a>
总金额为:<%=sum%>
点击改动数量的button之后,就跳到update.asp:
<!--#includefile="inc/conn.asp"-->
<%
这里须要注意在上个页面,有个i值,在这里就用到了,你要指明改动的是哪一行记录
i=request.querystring("rowcount")
pcount=request.form("pcount")(i)
pid=request.querystring("pid")(i)
sql="updatemrcarsetpcount="&pcount&"wherepid="&pid&"andorderid='"&session("orderid")&"'"
conn.executesql
conn.close
setconn=nothing
response.redirect("mycar.asp")‘运行完之后又一次跳转到mycar.asp
%>
相同点击删除之后,就跳到delete.asp,在该页面得到商品的id
<!--#includefile="inc/conn.asp"-->
<%
pid=request.QueryString("id")
response.write(pid)
sql="deletefrommrcarwherepid="&pid&"andorderid='"&session("orderid")&"'"
conn.executesql
conn.close
setconn=nothing
response.Redirect("mycar.asp")‘运行完之后又一次跳转到mycar.asp
%>一个简单的购物车做好了,它用到了连接数据库、数据库的增、删、改、查。
用ASP编写购物车代码的更多相关文章
- Asp.net 在网页编写C#代码示例-- 一个简单的web MsSql 命令执行环境
在给一个客户做的系统上,因为要对数据库进行查看,但之前都是用TeamView来连接到客户的服务器进行数据库操作的 但最近客户那边的TeamView好像更改过密码导致我无法正常连接,而巧了客户的网官因为 ...
- (转)Asp.net页面生命周期详解任我行(1)-小试牛刀,编写页面代码
原文地址:http://www.cnblogs.com/xuyubing/archive/2013/10/01/3348344.html 前言 很久很久以前,还是我在学校的时候,我就看了传智里面视频, ...
- Asp.net页面生命周期详解任我行(1)-小试牛刀,编写页面代码
前言 很久很久以前,还是我在学校的时候,我就看了传智里面视频,学习了一下Asp.net页面生命周期,当时看的时候,因为内功不够深厚,看起来很吃力,现在回头温习了一下,还是有点收获的,于是想用博客记录一 ...
- 【夯实PHP系列】购物车代码说明PHP的匿名函数
1. 定义:匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数.最经常用作回调函数(callback)参数的值.当然,也有其它应 ...
- python之编写购物车(第二天)
作业: 编写购物车 具体实现了如下功能: 1.可购买的商品信息显示 2.显示购物车内的商品信息.数量.总金额 3.购物车内的商品数量进行增加.减少和商品的删除 4.用户余额的充值 5.用户购买完成进行 ...
- 10个小技巧助您写出高性能的ASP.NET Core代码
今天这篇文章我们来聊一聊如何提升并优化ASP.NET Core应用程序的性能,本文的大部分内容来自翻译,当然中间穿插着自己的理解,希望对大家有所帮助!话不多说开始今天的主题吧! 我们都知道性能是公共网 ...
- 在 C# 中使用 Span<T> 和 Memory<T> 编写高性能代码
目录 在 C# 中使用 Span 和 Memory 编写高性能代码 .NET 中支持的内存类型 .NET Core 2.1 中新增的类型 访问连续内存: Span 和 Memory Span 介绍 C ...
- [转]通过Visual Studio为Linux编写C++代码
Build 2016大会上Microsoft首次公布的Visual Studio 2015扩展提供了在VS2015中编写C++代码,随后通过Linux/UNIX计算机进行编译和执行的能力.这种想法非常 ...
- 基于CkEditor实现.net在线开发之路(2)编写C#代码,怎么调用它。
上一章简约的介绍了CkEditor编辑器,可以编辑js逻辑代码,css,html,C#代码,这章我根据实际例子,讲解怎么编写C#代码和怎么调用它. 大家都还记得刚刚接触程序编时的hello Word吧 ...
随机推荐
- C#实现的内存分页机制的一个实例
C#实现的内存分页机制的一个实例 //多页索引表管理类(全局主索引表管理类) public class MuliPageIndexFeatureClass : IDisposable { protec ...
- Java之旅(一)---说说“异常”那些事
从開始学习VB,就听说过"异常",认为异常处理就是加上try..catch,不让错误抛出给用户,到此为止,不要再往下问了,再问也不会了.这就是那时候的理解.如今随时项目经验的 ...
- TCP传输连接建立与释放详解
一直以来有许多读者朋友对TCP的传输连接建立和释放过程不是很理解,而这又是几乎网络认证中必考的知识点,包括软考.CCNA\CCNP.H3CNA\H3CNE等,为此再把笔者年度巨作,广受好评的——< ...
- Ext JS学习第九天 Ext基础之 扩展原生的javascript对象
此文来记录学习笔记: •Ext对于原生的javascript对象进行了一系列的扩展,我们把他们掌握好,更能深刻的体会Ext的架构,从而对我们的web开发更好的服务, 源码位置,我们可以从开发包的这个位 ...
- git 无法添加文件夹下文件
最近做项目时,发现无法提交某个子文件夹下的文件. google后发现可能是该子文件夹下有.git文件夹导致无法上传. 删除子文件夹下.git后,依然无法提交子文件夹下的文件. 继续google, 尝试 ...
- webform基础介绍及页面传值(session,cookie)、跳转页面
一,IIS 1.首先知道IIS是个什么东西:它是web服务器软件,安装在服务器上,接受客户端发来的请求,并传送给服务器端,然后响应请求并送回给客户端.类似于饭店里的服务员. 2.会安装IIS——控制面 ...
- 通过OC实现简单的冒泡排序
NSMutableArray *arr = [@["] mutableCopy]; ; i<[arr count]-; i++) { ; j<[arr count]--i; j+ ...
- winsock2获取网页
#define WIN32_LEAN_AND_MEAN#include <winsock2.h>#include <stdlib.h>#include <stdio.h& ...
- 网站压力测试之ApacheBench
ApacheBench是 Apache 附带的一个小工具,专门用于 HTTP Server 的benchmark testing,可以同时模拟多个并发请求.使用yum安装apache,ab工具在/us ...
- JS 获取星期几的四种写法
今天是星期几的4种JS代码写法,有需要的朋友可以参考一下 第一种写法 复制代码代码如下: var str = ""; var week = new Date().getDay() ...