现在要做一个选购记录: 
用户(匿名)选中一个商品后继续选择其他的商品,最后将所有的商品记录作为一个订单号来存放,那位大侠帮忙出点程序 
先谢谢了! 
自己想法:
我想用session 来存储全部放在一个数据当中,然后从数据当中取出所有的产品最终生成一个订单,问题现在怎么把session 加入到数组当中啊,有点迷茫,或许有其它好的想法大家都可以说说,最好能提供一个实例就更好了,谢了!

解决方案 »

  1.   

    1.匿名用户你也让他能购物啊?没有用户信息买完了 你往哪里送啊?2.你应该把 数组放在SESSION  中  不是把sisson 放在数组里,数组存放购物信息。
    但我觉得数组不好  你应该放在 DATATABLE中  然后把DATATABLE  放在session中
      

  2.   

    用数组不好,只能按序号取,最好用HashTable或Dictionary,可以按商品编号或名称取值,参照一下PetShop4.0
    不少网站,匿名用户可以购物的,其实用Cookie做购物车更有效率,我前几天用JS做了一个。//购物小车 Start ################################################################
    function Cart(){    
        var warelist,wares; var name = "wares";var hours = 1;
        InitCart();
        //私有函数 ---------------------------------------------------------------
        function InitCart(){
            var re=new RegExp(name+"=([^;]*);?","gi");  
            var r=re.exec(document.cookie)||[];  //读取COOKIES
            warelist = r.length>1?r[1]:"" ; 
            if(warelist.length>0) wares = warelist.split("&");
            if(!wares) wares = new Array(); 
        }
        function SaveCart(){  //保存购物清单
            warelist = wares.join("&");
        var expire = new Date((new Date()).getTime() + hours * 3600000); 
        expire = "; expires=" + expire.toGMTString(); 
        document.cookie = name+"=" + warelist + expire; 
      } 
        //购物车里的商品 --------------------------------------------------------------- 
        this.Wares = wares;  
        //公共函数 --------------------------------------------------------------- 
        this.FindWare = function(id){
            var index = -1; 
            for(var i=0;i<wares.length;i++){
                if(wares[i].split("|")[0] == id){ index = i;break;} 
            }
            return index;
        }
        
        this.DelWare = function(id){      //删除商品
            var index = this.FindWare(id);
            if(index>=0){ wares.splice(index,1); SaveCart();}
        }    
        
        this.AddWare = function(id,name,price,num,range){   //添加商品。range 购买数量范围
            var index = this.FindWare(id);
            if(index<0) wares.push(id+"|"+escape(name)+"|"+price+"|"+num+"|"+range);
            else{
                 var oldnum = parseInt( wares[index].split("|")[3] );
                 wares[index] = id+"|"+escape(name)+"|"+price+"|"+ ( oldnum + parseInt(num) ) +"|" + range; }
            SaveCart();
        }
        
        this.AlterCount = function(id,num){    //变更数量
            var index = this.FindWare(id); if(index<0) return ;
            wareinfo = wares[index].split("|"); wareinfo[3] = num; wares[index] = wareinfo.join("|");      
            SaveCart();
        }
        this.Clear = function(){ wares= new Array();SaveCart(); }
    }
    //购物小车 End #################################################################
    取值的话这样取
    function InitCartPanel(){
        cart = new Cart(); var list = document.getElementById("warelist"); 
        var wareInfo; var i=0,value=0; //商品行号,总价 
        for(;i<cart.Wares.length;i++){
            wareInfo = cart.Wares[i].split("|");
            var newRow = list.insertRow(i+1);
            newRow.insertCell(0).innerHTML = unescape(wareInfo[1]);  //三列:名,价,数
            newRow.insertCell(1).innerHTML = wareInfo[2]+"¥"; 
            newRow.insertCell(2).innerHTML = wareInfo[3];
            newRow.insertCell(3).innerHTML = "<a href=\"#\" onclick=\"SwitchStatus(this);return false;\">修改数量</a>"  //ie6下javascript:void(0)会导致字体异常
                + "&nbsp;<a href=\"#\" onclick=\"DelFromCart(this);return false;\">删除</a>"
                + "<a href=\"#\" onclick=\"SwitchStatus(this);return false;\" style=\"display:none\">取消</a>"
                + "<input type=\"hidden\" value="+ wareInfo[0] +" />" + "<input type=\"hidden\" value="+ wareInfo[4] +" />";    
           if(i%2) newRow.style.background = "#D0D0FF";
           value = value + parseInt(wareInfo[2])*wareInfo[3];
        }
    }
      

  3.   

    用Session也可以,把selected product放到session中。
      

  4.   

    Session默认时间是20分钟,把它改大一点。还有Session很容易丢失数据。Session.Timeout=100;//设置Session过期时间为100分钟。
      

  5.   


    session("a")="衣服"
    session("b")="书"
    session("c")="TT"
    session("d")="YY"
    list<int,string> a=new list<int,string>
    //保存到泛型集合
    a.add(1,'"+session("a")+"')
    a.add(2,'"+session("b")+"')
    a.add(3,'"+session("c")+"')
    a.add(4,'"+session("d")+"')读取 a["a"]="衣服"
    a["b"]="书"
      

  6.   

    总体来说有两种方法:
         第一种,匿名用户的购物车信息你可以放到Session或者Cookie.当用户结算时将session或者Cookie信息保存到数据库。在网上有好多这样的范例。
         第二种是将匿名用户的购物车信息可以放到数据库中,Petshop4.0就是这样实现的。
    同时我这里有一个现成的例子。不过是pdf(英文版,但是能看得懂)文件,内容比较多,如果你想要可以留下邮件地址。给你发过去。
      

  7.   

    Dictionary<string, string> a = new Dictionary<string, string>();
      

  8.   

    可以把数据保存在哈希表中,然后把哈希表保存在session中,在查看购物车的时候,读取这个哈希表,把产品限时出来
      

  9.   

    给一个购物车对象
    public class shoping{
    public apparel{
    get;set;
    }
    public breeches{
    get;set;
    }
    //等
    }
    有了这个之后就是
    吧他放到你想要放的地方,如session
    Session.Add("",new shoping{apparel=“衣服”,breeches=“短裤”});
    结账时候判断一下sessionid