[摘要]数据库字段 表:pro_talbe: id 产品编号 proname 产品名称 simages 产品小图 表o_rder: id 订单编号 p_roid 产品编号 m_um 产品数量 d_time 订购时间 表co_table: id 客户编号 nn_ame 客户姓名 tt_el 联系电话 ee...
数据库字段
表:pro_talbe:
id 产品编号
proname 产品名称
simages 产品小图
表o_rder:
id 订单编号
p_roid 产品编号
m_um 产品数量
d_time 订购时间
表co_table:
id 客户编号
nn_ame 客户姓名
tt_el 联系电话
ee_m_ail 客户邮箱
+++++++++++++++++++++++
index.asp源码
+++++++++++++++++++++++
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/conn.asp" -->
<%
set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_conn_STRING
Recordset1.Source = "SELECT * FROM pro_table"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 3
Recordset1.Open()
Recordset1_numRows = 0
%>
<%
Dim Repeat1__numRows
Repeat1__numRows = -1
Dim Repeat1__index
Repeat1__index = 0
Recordset1_numRows = Recordset1_numRows + Repeat1__numRows
%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table width="583" border="0" cellspacing="0" cellpadding="0">
<%
While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF))
%>
<tr>
<td width="140"><%=(Recordset1.Fields.Item("id").Value)%></td>
<td width="171"><%=(Recordset1.Fields.Item("proname").Value)%></td>
<td width="272"><%=(Recordset1.Fields.Item("simages").Value)%></td>
<td width="272"><a href="cart.asp?ProductID=<%=(Recordset1.Fields.Item("id").Value)%>&quantity=1">购买</a></td>
</tr>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
Recordset1.MoveNext()
Wend
%>
</table>
</body>
</html>
<%
Recordset1.Close()
%>
列出产品,这里有一个要点就是:<a href="cart.asp?ProductID=<%=(Recordset1.Fields.Item("id").Value)%>&quantity=1">购买</a>
这里传递了两个参数:产品ID“ProductID" 数量:“quantity"
+++++++++++++++++++++++++
下面是cart.asp的源码:
+++++++++++++++++++++
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/conn.asp" -->
<%
if not IsObject(session("cart")) then
Set session("cart")=CreateObject("Scripting.Dictionary")
end if
Set cart=session("cart")
productID=Cstr(request("productID"))
dim detail(1)
detail(0)=Int(request("quantity"))
if request("productID")<>"" then
if cart.Exists(productID) then
cart.Remove(productID)
end if
cart.add productID,detail
end if
keys=cart.keys
items=cart.items
set session("cart")=cart
%>
<HTML>
<HEAD>
<TITLE>浙江广源印刷包装有限公司</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<LINK
href="index/index.css" type=text/css rel=stylesheet>
<META content="MSHTML 5.50.4807.2300" name=GENERATOR>
</HEAD>
<BODY text=#000000 bgColor=#ffffff leftMargin=0 topMargin=0 marginwidth="0" marginheight="0">
<table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF">
<tr>
<td width="100%" valign="top"> <br>
<table border="2" width="100%" cellspacing="0" cellpadding="0" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" bgcolor="#D00000" height="1" align="center">
<tr bgcolor="#3399FF">
<td width="25%" align="center" height="19"><font color="#FFFFFF">商品名称</font></td>
<td width="25%" align="center" height="19"><font color="#FFFFFF">购买数量</font></td>
<td width="12%" align="center" height="19"><font color="#FFFFFF">更新</font></td>
<td width="13%" align="center" height="19"><font color="#FFFFFF">删除</font></td>
</tr>
<% For i = 0 To cart.Count -1 %>
<% Dim list__MMColParam
list__MMColParam = keys(i) %>
<% set list = Server.CreateObject("ADODB.Recordset")
list.ActiveConnection = MM_conn_STRING
list.Source = "SELECT * FROM pro_table WHERE id = " + Replace(list__MMColParam, "’", "’’") + ""
list.CursorType = 0
list.CursorLocation = 2
list.LockType = 3
list.Open()
%>
<form method="post" action="cart.asp" onSubmit="return checkform(this);"> ’更新产品数量用
<tr bgcolor="#ECECFF">
<td width="25%" align="center" height="1"><a href="detail.asp?productID=<%=keys(i)%>"><font color="#000077" ></font></a><%=(list.Fields.Item("proname").Value)%></td>
<td width="25%" align="center" height="1">
<input name="quantity" size=4 class="edit" value="<%=items(i)(0)%>">
<input type="hidden" name="productID" value="<%=keys(i)%>">
</td>
<td width="12%" align="center" height="1">
<input type="image" border="0" name="imageField" src="http://edu.chinaz.com/Get/Program/Asp/images/ref.gif" width="17" height="19">
</td>
<td width="13%" align="center" height="1"><a href="delcart.asp?productID=<%=keys(i)%>"><img src="images/del.gif" width="17" height="19" border="0"></a></td>
</tr>
</form>
<%
list.Close()
%>
<% next %>
<tr >
<td width="75%" bgcolor="#000000" align="center" height="1" colspan="2">
<p align="right"><font color="#FFFFFF">总价合计:</font>
</td>
<td width="25%" bgcolor="#000000" align="center" height="1" colspan="2"><font color="#FFFFFF">¥<%=price%></font></td>
</tr>
</table>
<p align="center"><b><a href="index.asp">继续选购</a> <a href="order.asp">付款</a></b>
</td>
</tr>
</table>
</BODY>
</HTML>
[page_break]其中最前面代码,下面的理解是我自已想的有可能有错,不过程序绝对没有错:<%
if not IsObject(session("cart")) then
Set session("cart")=CreateObject("Scripting.Dictionary")’建立二维数组
end if
Set cart=session("cart")
productID=Cstr(request("productID"))’定义变量productid为产品页传递过来的值
dim detail(1)
detail(0)=Int(request("quantity"))
if request("productID")<>"" then
if cart.Exists(productID) then
cart.Remove(productID)
end if
cart.add productID,detail ’上面这一段我看不太懂,谁知道告诉我一下,不过和下面的有关
end if
keys=cart.keys ’定义变量KEYS的值为数组里面的产品ID
items=cart.items ’定义变量items的值为数组里面的产品数量
set session("cart")=cart
%>
代码二:
<% For i = 0 To cart.Count -1 %> ’设置多个产品的循环,cart.count是指购买几个产品,后面要以next结束
<% Dim list__MMColParam
list__MMColParam = keys(i) %> ’定义ID为cart数组里面的产品ID号
<% set list = Server.CreateObject("ADODB.Recordset")
list.ActiveConnection = MM_conn_STRING
list.Source = "SELECT * FROM pro_table WHERE id = " + Replace(list__MMColParam, "’", "’’") + ""
list.CursorType = 0
list.CursorLocation = 2
list.LockType = 3
list.Open()
%> ’上面的代码就不用我说了,其中要注意的:list__MMColParam = keys(i)
………………………………………… <%
list.Close()
%>
<% next %>
++++++++++++++++++++++
取消订购的产品:delcart.asp
++++++++++++++++++++++
<%
Set cart=session("cart")
if request("productID")<>"" then
productID=Cstr(request("productID"))
cart.Remove(productID)
end if
set session("cart")=cart
response.redirect("cart.asp")
%>
+++++++++++++++++++++++++
order.asp源码,这里很简单,看一下就明白了
+++++++++++++++++++++++
<HTML><HEAD>
<TITLE>浙江广源印刷包装有限公司</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<LINK
href="index/index.css" type=text/css rel=stylesheet>
<META content="MSHTML 5.50.4807.2300" name=GENERATOR>
</HEAD>
<BODY text=#000000 bgColor=#ffffff leftMargin=0 topMargin=0 marginwidth="0" marginheight="0">
<div align="center">
<form name="form2" method="post" action="sendorder.asp" onSubmit="return check1()">
<table width="514" border="0" cellspacing="0" cellpadding="0" height="15" align="center">
<tr>
<td height="6" bgcolor="#FF9900"> <font color="#FFFFFF" size="2"> 购买者联系信息:</font></td>
</tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td>
<div align="center"><font size="2">联系人</font></div>
</td>
<td>
<div align="left"><font size="2">
<input type="text" name="n_ame" size="20">
</font></div>
</td>
</tr>
<tr>
<td>
<div align="center"><font size="2">公司电话</font></div>
</td>
<td>
<div align="left"><font size="2">
<input type="text" name="t_el" size="20">
</font></div>
</td>
</tr>
<tr>
<td>
<div align="center"><font size="2">电子邮箱</font></div>
</td>
<td>
<div align="left"><font size="2">
<input type="text" name="e_mail" size="20">
</font></div>
</td>
</tr>
<td>
<div align="center"></div>
</td>
<td> </td>
</tr>
</table>
<p align="center">
<input name="submit" type="submit" value="提交">
<input name="reset" type="reset" value="清除">
</p>
</form>
</div>
</BODY></HTML>
++++++++++++++++++++++++++++++++
sendorder.asp,提交选购的产品到数据库,
+++++++++++++++++++++++++++++
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/conn.asp" -->
<%
if not IsObject(session("cart")) then
response.redirect("/")
end if
%> ’加一个判断,如果session("cart")为空,则重定位URL
<%
Set rs1=server.createobject("ADODB.recordset")
Set cart=session("cart")
keys=cart.keys ’取出数组里面的产品ID
items=cart.items ’取出数组里面的产品数量
%>
<%
set list = Server.CreateObject("ADODB.Command")
list.ActiveConnection = MM_conn_STRING
For i = 0 To cart.Count -1
list.CommandText = "INSERT INTO o_rder (m_um, p_roid) VALUES (" + Replace(items(i)(0), "’", "’’") + "," + Replace(keys(i), "’", "’’") + " ) "
list.CommandType = 1
list.CommandTimeout = 0
list.Prepared = true
list.Execute()
next
%>
<%
set add = Server.CreateObject("ADODB.Command")
add.ActiveConnection = MM_conn_STRING
add.CommandText = "INSERT INTO co_table (nn_ame, tt_el, ee_m_ail) VALUES (" + Replace(Request.form("n_ame"), "’", "’’") + ", " + Replace(Request.form("t_el"), "’", "’’") + ", " + Replace(Request.form("e_mail"), "’", "’’") + ") "
add.CommandType = 1
add.CommandTimeout = 0
add.Prepared = true
add.Execute()
%>
<html>
<head>
<title>浙江广源印刷包装公司</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" >
<p><%= Request.form("n_ame") %>你好,以下是你的详单</p>
<p><%= Request.form("n_ame") %></p>
<p><%= Request.form("t_el") %></p>
<p><%= Request.form("e_mail") %></p>
<p>
<%For i = 0 To cart.Count -1%>
</p>
<p> id:<%=keys(i)%><br>
数量:<%=items(i)(0)%><br><%next%>
</p>
<p> </p>
<p> </p>
<p> </p>
</body>
</html>
<% session("cart")=""%>
上面用了两个命令预存过程:
第一个过程:list
存储产品到数据库
因为有可能选购多个产品,所以用了一个循环For i = 0 To cart.Count -1,并以next结束
第二个过程:add
存储客户到数据库
就这样一个简单的购物车做好了。
本教程中主要的是cart.asp中的定义一个二维数组,还有用循环For i = 0 To cart.Count -1 next 把所订购的产品显示出来
……