用 ASP 编写购物车代码
网上购物已成为生活的潮流,在网上购物之后,想要随时查看自己已买 的东西,想要随时删除或修改某件商品数量,要怎么做呢?下面我就来 写代码及释义。先来做用户登陆页面(login.asp):
用户名: < /td>
密码: | |
然后来写接收用户所填写的信息以检查是否存在该用户的页面 (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 用户登陆成功之后, 将用户名放入 session 里, 并给用户分配一个订单, 就像去超市购物推着一个购物车,此时这个购物车是属于你的,用用户 名和系统时间作为购物车的名字,然后跳转到购物首页。 session("name")=uname session("orderid")=time&;uname response.Redirect("index.asp") else %>
<% endif
rs.close setrs=nothing conn.close setconn=nothing %> 那么,接下来就是购物的首页(index.asp)了 下面用 css 样式表将表格里的字体统一设置为 14 号字 ‘ <% 如果用户没登陆就直接打开购物首页,那么就跳转到登陆页面 ifsession("name")=""then response.Redirect("login.asp") endif
%> 做一个搜索的文本框,方便用户搜索商品。其原理是这样的:用户填入 要搜索的商品后,通过表单提交到本页面,从数据库中查找像用户填写 的字符串的商品,再显示出来 <% searchname=request.Form("search")‘得到用户填写的字符串 sql="select*fromproductswherepnamelike'%"&;searchname&;"%'"‘写 sql 语句,查找出结果 setrs=server.CreateObject("adodb.recordset")‘设置一个结果集对象 rs.opensql,conn,3,1 whilenotrs.eof‘循环输出商品的相关信息 %> 每个商品下面都有一个购买按钮,需要做一个表单
uttype= "hidden"name="price"value="<%=rs(3)%>"/> 名称: <%=rs(1)%>
价格:<%=rs(3)%> |
<% rs.movenext‘指向下一个记录 wend rs.close setrs=nothing conn.close setconn=nothing %>
如果用户想要查看商品更详细的信息, 那么就应该将商品图片做成一个 超链接,连接到 product.asp,在该页面显示详细信息。在该页面也有一 个购买按钮,点击之后同样跳到 buy.asp: <% pid=request.QueryString("id") response.Write(pid) sql="select*fromproductswherepid="&;pid setrs=server.CreateObject("adodb.recordset") rs.opensql,conn,3,1 ifnotrs.eofthen %> 名称:<%=rs(1)%>
价格:<%=rs(3)%> |
<%=rs(4)%>
xml:namespace prefix = inputtype="button"onclick="javascript />‘点击购买之后触发一个 onclick 事件,跳转到 buy.asp
<% endif rs.close setrs=nothing conn.close setconn=nothing %> 用户点击了购买以后,将该商品的 id 传到 buy.asp,下面来写 buy.asp 的代码: ‘将连接数据库的字符串包含进来 <% pid=request("id")‘得到商品的 id price=request("price")‘得到商品的价格
sql="select*frommrcarwherepid="&;pid&;"andorderid='"&;session("orde rid")&;"'"‘写 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("orde rid")&;"',"&;pid&;","