我现在有很多下载的链接我想要实现的是:1,只有用户登录后才能在链接全面出现 选择框 然后选择需要下的链接,点击下载选中链接 进行下载
2,用户分级别,不同级别用户可以选择的连接数不同,比如有些用户可以选5个 有些用户可以选10个
3,用户下载一次后即不能在下载这样的 业务可以实现么如何实现>
谢谢至于不同级别的用户 应该可以在表里多一个权限,随后的我就没有思路了
谢谢大家!

解决方案 »

  1.   

    1.丢一个用户对象进Session就可以了
    2.如你所说,在用户表有一个权限的字段就可以了
    3.用户下载一次后,记录一条数据进数据库里。
    然后每次下载之前,都要检查之前是否下载过了。也许别人有更好的办法。
      

  2.   

    我给出思路吧:
    问题1解决:表单的分类个数限制用JS控制,如果把这几个CHECKBOX放在一个DIV里最好了
    得到DIV节点,然后得到DIV的所有子节点CHECKBOX节点,给用户选择CHECKBOX的方法增加CLICK事件,如果选择到的节点个数>5 则alert选择的分类不能超过5个。
    其次在类中对节点个数进行判断,用数组接收提交过来的CHECKBOX个数,同样判断LENGTH是否大于5,大于则return,返回页面给出错误消息。问题2:怎么设定这几个对象的数据库模型?
    你的设计方式可以的,就是在分类的一方加外键,其实按照面向对象的方法来说,一种分类权限能被多个用户拥有,一个用户能选择多个分类,所以是个多对多的关系,不过分类数据量不是很大,可以不用中间表。
      

  3.   

    额。早知道就直接给上代码,免得说那么多,我写出来吧用JQUERY写呢还是原始的,不知道你们的要求
    我就写个原始通用的吧的吧:window.onload = function(){/**得到div下所有子节点**/
    var checkboxNodes = document.getElementById("div1").getElementsByTagName("input");
    /**遍历所有节点**/
     for(var i=0;i<checkboxNodes.length;i++)
    {
       var len = 0;
    /**为每个节点添加click事件**/
       checkboxNodes[i].onclick = function(){
           len++;
           if(len>5)
           {
            alert("对不起,分类个数不能超过5个!");
    return false;
    this.checked = false;
           }}
    }}</script>
    <body>
    <div id="div1">
    <input type="checkbox" />checkbox1
    <input type="checkbox" />checkbox2
    <input type="checkbox" />checkbox3
    <input type="checkbox" />checkbox4
    <input type="checkbox" />checkbox5
    <input type="checkbox" />checkbox6
    <input type="checkbox" />checkbox7
    <input type="checkbox" />checkbox8
    <input type="checkbox" />checkbox9
    <input type="checkbox" />checkbox10
    </div>
    </body>
    我已经测试过了,没问题
      

  4.   

    对不起,不行还得改改,因为选择了还得让用户有取消的余地,这样每次click一次都会当做是给length++了。
      

  5.   


    window.onload = function(){
    var checkboxNodes = document.getElementById("div1").getElementsByTagName("input");
     for(var i=0;i<checkboxNodes.length;i++)
    {
       var len = 0;
       checkboxNodes[i].onclick = function(){
        if(this.checked==true)
    {
      len ++ ;
      alert(len);
    }else if(this.checked==false)
    {
      len --;
      alert(len);
    }

           if(len>5)
           {
            alert("对不起,分类个数不能超过5个!");
    len = 5;
    this.checked = false;
           }}
    }}好了,,现在可以了
      

  6.   

    我是楼上,3次回复不能接着搞了,换个号来其实还有个问题得考虑进去,就是有可能在页面刚刷出来的时候就有选项被选中了,不过一般不会出现这种情况,我写的最终版。。JQUERY+普通javascript的合体。。代码如下$(function(){
    var $inputs = $("#div1").children(":checkbox");
    $inputs.attr("checked",false);//将所有checkbox的checked属性置空

    var len = 0;
    $inputs.click(function(){

    this.checked == true? len++ : len--;
    if(len>5)
          {
           alert("对不起,分类个数不能超过5个!");
    len = 5;
    this.checked = false;
           }
    })
    })
    其实也可以在提交按钮上加事件,那样判断的话会比这个判断简单很多,直接判断用户选择的个数是不是<5不是返回,让用户重新搞,只不过这样用户体验效果差了一点。。