用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

%>一个简单的购物车做好了,它用到了连接数据库、数据库的增、删、改、查。

时间: 2024-12-19 10:54:04

用ASP编写购物车代码的相关文章

Asp.net 在网页编写C#代码示例-- 一个简单的web MsSql 命令执行环境

在给一个客户做的系统上,因为要对数据库进行查看,但之前都是用TeamView来连接到客户的服务器进行数据库操作的 但最近客户那边的TeamView好像更改过密码导致我无法正常连接,而巧了客户的网官因为有事没有上班所以也法获取新的密码. 因为业务原因急需查看数据库,所以就写了一个简单的SQl命令并部署到客户的服务器来通过Web执行Sql命令 将ConnectonString更改为自己的数据库连接并保存为**.aspx即可 <!DOCTYPE html> <html> <head

【夯实PHP系列】购物车代码说明PHP的匿名函数

1. 定义:匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数.最经常用作回调函数(callback)参数的值.当然,也有其它应用的情况. 2. 用法: 1)作为变量的值: 闭包函数也可以作为变量的值来使用.PHP 会自动把此种表达式转换成内置类 Closure 的对象实例.把一个 closure 对象赋值给一个变量的方式与普通变量赋值的语法是一样的,最后也要加上分号 2)从父作用域继承变量: 闭包可以从父作用域中继承变量.

如何把ASP编写成DLL

这篇文章主要是把ASP代码变成组件,开发者不仅是加快了ASP的速度,而且也能保护自己的代码. 下面,我们会来编写一个非常简单的组件,重点是知道怎样开发DLL组件,而不是其复杂的代码!这些都要靠你们自己以后的努力了. 服务器端组件 首先,服务器端的组件要有别于客户端的组件.客户端的组件是通过网络传输,依靠HTML来起作用.而且只能在IE上有用.但是服务器端的组件是运行在服务器端,它在服务器上执行各种操作.因此,所有的浏览器都能享用,它依靠的是服务器而不是浏览器. 当IIS被请求执行一个ASP程序,

编写可读性代码的艺术

在做IT的公司里,尤其是软件开发部门,一般不会要求工程师衣着正式.在我工作过的一些环境相对宽松的公司里,很多程序员的衣着连得体都算不上(搞笑的T恤.短裤.拖鞋或者干脆不穿鞋).我想,我本人也在这个行列里面.虽然我现在改行做软件开发方面的咨询工作,但还是改不了这副德性.衣着体面的其中一个积极方面是它体现了对周围人的尊重,以及对所从事工作的尊重.比如,那些研究市场的人要表现出对客户的尊重.而大多数程序员基本上每天主要的工作就是和其他程序员打交道.那么这说明程序员之间就不用互相尊重吗?而且也不用尊重自

asp网络编程:用ASP编写下载网页中所有资源的程序

看过一篇关于下载网页中图片的文章,它只能下载以http头的图片,我做了些改进,可以下载网页中的所有连接资源,并按照网页中的目录结构建立本地目录,存放资源. download.asp?url=你要下载的网页 download.asp代码如下: <% Server.ScriptTimeout=9999 function SaveToFile(from,tofile) on error resume next dim geturl,objStream,imgs geturl=trim(from) My

10个小技巧助您写出高性能的ASP.NET Core代码

今天这篇文章我们来聊一聊如何提升并优化ASP.NET Core应用程序的性能,本文的大部分内容来自翻译,当然中间穿插着自己的理解,希望对大家有所帮助!话不多说开始今天的主题吧! 我们都知道性能是公共网站取得成功的关键因素之一.如果一个网站的响应时间超过3秒,那么用户通常不会再此光顾(此网站).谷歌,Bing,百度以及其他搜索引擎也更倾向于推荐优化后的,移动友好的以及响应速度更快的网站. 作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/10507984.

python_购物车代码的分解及全部代码

购物车代码,一步一步进行(编写代码的过程,就是一个一步一步递进式的思考) 如下: 第一步,实现与用户交互以及答应可购物的清单 对于上一步有一个缺点就是打印出俩的购物清单是一个元祖,用户看起来并不方便,而且没有编号,首先我们实现如何让用户看起来好看 1 product_list=[ 2 ('book',100), 3 ('Mac Pro',9000), 4 ('watch',500), 5 ('coffee',30), 6 ('Python',106),] 7 saving=input('inpu

实时显示iOS编写UI代码效果

编写iOS应用UI的方式大概有两种,一种是Storyboard/Xib,另一种是手写代码.采用Storyboard/Xib方式组织UI,由于提供可视化的特性,只要从UI库中拖动UI控件,便可以显示结果,极大地提高开发速度.但面临一个问题就是多人协作开发,由于所有的UI都放在同一个Storyboard文件中,使用Git/SVN合并代码就会出现冲突.多人协作开发还不是主要问题,有人提出可以创建多个Storyboard来分开UI编写,而Storyboard/Xib最主要问题是代码复用性比较差.所以有些

第1课第4.4节_Android硬件访问服务编写HAL代码

4 编写HAL代码 源码下载方法 第一次: git clone https://github.com/weidongshan/SYS_0001_LEDDemo.git 更新: git pull origin 取出指定版本: git checkout v1 // 有JNI没有HAL git checkout v2 // 有JNI,HAL git checkout v3 // add MODULE TAG, DEVICE TAG JNI 向上提供本地函数, 向下加载HAL文件并调用HAL的函数HAL