|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
使用cdonts,可以发送、查看邮件,实现webmail的功能。结合wsh,可以实现对nt主机的管理,如nt用户管理、iis虚拟主机设置、exchange邮箱设置等等,就像管理本地机一样方便。interdev 本文将先容在InterDev中完成网上商铺购物车功效的办法,详细步骤以下:
1、数据库布局:
产物数据表(Products):寄存产物信息
产物名ProductName产物编号ProductID单价Price分类编号CategoryID
Cart:购物车数据表,一时寄存客户的定单
产物编号ProductID产物名ProductName代价Price客户Session标号SessionID订购数目Quantity
Orders:定单,当用户确认定单后,定货数据将由Cart表转存进此表
产物编号ProductID客户Session编号SessionID订购数目Quantity
Customers:客户,完成客户登录时将利用该表
2、创建数据库毗连:
1、增加数据源:在把持面板当选择:办理工具/ODBC数据源,单击增加,选择数据库驱动程序为MicrosoftAccessDriver,单击"完成",在弹出的对话框中为数据源定名为"Store",单击选择,找到创建好的.mdb文件,然后单击断定
2、创建毗连:在InterDev中的ProjectExlporer中右击选择AddDataConnection,选择数据源,定名为Con,毗连创建后的一切数据存取都将基于此毗连。
3、购物车要完成的基础功效和对应的文件:
产物扫瞄和选购Products.asp放进购物车AddtoCart.asp扫瞄购物车ViewCart.asp删除一个产物DeleteItem.asp更新购物车UpdateCart.asp确认定单SaveOrder.asp 4、Products.asp
本页以表格显现客户所选的产物分类中的一切商品,每个商品后都有一个"增加到购物车"按钮,指向AddtoCart.asp。
1、增加prodRec控件,设定纪录源为Products表。
2、增加Grid控件,设定其数据源为prodRec
3、增加"选购此产物"链接
在Grid的属性页中单击AddUnboundColumn,在Header中输出:"选购此产物",在Field/expression中输出:="<Ahref=AddtoCart.asp?ProductID="+[ProductID]+">选购"+"</A>"。此语句的感化是,将以后选定的产物的产物编号寄存在变量ProductID中传送给AddtoCart.asp,在AddtoCart.asp中将依据此产物编号为购物车增加纪录。
5、AddtoCart.asp
本页供应用户所选商品的具体信息,用户在此页能够修正订购数目。
1、增加一个纪录集,定名为prodRec,设定纪录源为SQLstatement,输出:SELECT*FROMProducts。在<Head>区中输出以下代码:
<ScriptLanguage=JavascriptRunat=Server>
functionprodRec_onbeforeopen(){
newSQL="Select*FromProductsWhereProductID="+Request("ProductID");
prodRec.setSQLText(newSQL);
}
</Script>
此段代码在纪录集翻开之前实行,依据Products.asp传送来的ProductID参数,过滤纪录集,取得用户选择的商品。
2、再增加一个纪录集,定名为cartRec,该纪录集的感化是依据用户的Session编号和选定的产物编号,断定所选商品是不是已在购物车中,假如已在购物车中,则提取Cart表中的纪录,提醒用户该商品已选购,并让用户变动选购数目:
<ScriptLanguage=JavascriptRunat=Server>
VarIncart;//是不是在购物车中
VarQtyinCart;//用户已选购的数目
functioncartRec_onbeforeopen(){
newSQL="Select*FromCartWhere(SessionID="+Session.SessionID+")
and(ProductID="+Request("ProductID")+")";
cartRec.setSQLText(newSQL);
}
functioncartRec_ondatasetcomplete(){
if(cartRecrdset.getCount()==1)
//过滤跋文录集不为空,用户已选购了该商品
{
Incart=true;
QtyinCart=cartRec.fields.getValue("Quantity");
//掏出用户已选购的数目
}
</Script>
3、<Body>中的代码:
<FormAction="UpdateCart.asp"Method="Post">
您选定的商品为:
<%=prodRecorset.fields.getValue("ProductNAME")%>
<%IfIncart=trueThen%>
您的购物车中已有
<%=QtyinCart%>件此商品,请更新您选购的数目:
<InputType="Text"Name="OrderQty"Value="<%=QtyinCart%>">
<%Else%>
请输出您的选购数目:
<InputType="Text"Name="OrderQty"Value="1">
<%EndIf%>
<InputName="prodID"Type="hidden"Value="<%=prodRec.fields.getValue("ProductID")%>">
//利用一个埋没的编纂框,寄存用户选定的产物编号,供UpdateCart.asp利用。
<InputName="prodName"Type="hidden"Value="<%=prodRec.fields.getValue("ProductName")%>">
<InputName="prodPrice"Type="hidden"Value="<%=prodRec.fields.getValue("Price")%>">
//利用三个隐含编纂框,向UpdataCart.asp传送产物编号、称号和代价。
<InputType="Submit"Value="增加至购物车">
</Form> 6、UpdateCart.asp
吸收AddtoCart.asp传送来的prodID、prodName、prodPrice和OrderQty,加上客户的Session编号,存进Cart表中。
1、增加纪录集cartRec,设置数据源为Select*FromCart
2、增加更新数据的代码:
<ScriptLanguage=JavascriptRunat=Server>
functioncartRec_onbeforeopen(){
if(Request("InCart")==0)
{
newSQL="Select*FromCart";
}//不在购物车中,掏出一切数据
else
{
newSQL="Select*FromCartWhereSessionID="+Session.SessionID;
}//已在购物车中,掏出独一的数据,筹办修正数据
cartRec.setSQLText(newSQL);
}
functioncartRec_ondatasetcomplete(){
if(Request("InCart")==0)//假如不在购物车中,增加新记录
{
fields=newArray("ProductID","ProductName"Quantity","SessionID");
values=newArray(Request("prodID"),Request("prodName"),Request("OrderQty"),Session.SessionID);
cartRec.AddImmeidate(fields,values);
}
else//假如已在购物车中,更新购置数目
{
cartRec.fields.setValue("Quantity",Request("OrderQty"));
}
Response.Redirect("ViewCart.asp");
</Script>
7、ViewCart.asp
1、增加纪录集,定名为cartRec,设置数据源为Select*FromCart
2、增加Grid控件,设定命据源为cartRec,显现三个字段:ProductName、Quantity、Price。增加两个UnboundedColumn:
1)显现总代价,Field/Expression为:=[Quantity]*[Price]。
2)编纂/删除按钮,Field/Expression为:="<AHref=AddtoCart.asp?ProductID="+[ProductID]+"编纂/A>/<AHref=DeleteItem.asp?ProductID="+[ProductID]+">删除</A>"。这两个超链接分离将ProductID传送给AddtoCart.asp和DeleteItem.asp。
3、增加指向SaveOrder.asp的链接
<Ahref="SaveOrder.asp">确认定单</A>
8、DeleteItem.asp删除用户选定的一条购物车纪录
1、增加纪录集cartRec,设置数据源为Select*FromCart
2、增加代码:
<ScriptLanguage=JavascriptRunat=Server>
functioncartRec_onbeforeopen()
{
newSQL="Select*fromCartWhere(SessionID="+Session.SessionID+")
And(ProductID="+Request("ProductID")+")";
cartRec.setSQLText(newSQL);
}//过滤纪录集失掉以后用户选定要删除的购物车纪录
functioncartRec_ondatasetcomplete()
{
cartRec.deleteRecord();
Response.Redirect("ViewCart.asp");
}//删除客户选定的购物车纪录,然后转向ViewCart.asp
10、SaveOrder.asp保留购物车中的一时数据至Order表
1、增加纪录集cartRec,设定命据源为Select*FromCart,在onbeforeopen()中过滤用Select*FromCartWherSessionID=Session.SessionID过滤纪录集,失掉以后用户的一切未保留购物车纪录
2、增加纪录集orderRec,设定命据源为表Order
3、捕捉cartRec的ondatasetcomplete()事务,输出代码:
functioncartRec_ondatasetcomplete()
{
while(!cartRec.EOF)
{
fields=newArray("ProductID","SessionID","Quantity");
values=newArray(cartRec.fields.getValue("ProductID"),
carRec.fields.getValue("SessionID"),
carRec.fields.getValue("Quantity"));
orderRec.Addimediate(fields,values);//向Order表中增加新纪录
cartRec.deleteRecord();//删除购物车中的一笔记录
cartRec.Movenext();//持续处置下一笔记录
}
Response.Redirect("ViewCart.asp");
}
ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。 |
|