仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 432|回复: 7
打印 上一主题 下一主题

[学习教程] ASP网页设计在InterDev中完成网上购物推车

[复制链接]
飘飘悠悠 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:11:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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是怎么工作的。
再现理想 该用户已被删除
沙发
发表于 2015-1-18 21:45:54 | 只看该作者
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
小妖女 该用户已被删除
板凳
发表于 2015-1-26 06:10:22 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
蒙在股里 该用户已被删除
地板
发表于 2015-2-10 01:14:01 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-28 13:58:34 | 只看该作者
从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
分手快乐 该用户已被删除
6#
发表于 2015-3-10 00:05:18 | 只看该作者
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
因胸联盟 该用户已被删除
7#
发表于 2015-3-17 03:11:16 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
柔情似水 该用户已被删除
8#
发表于 2015-3-23 18:12:16 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 00:00

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表