有多个名称对应多个复选框(如下所示):
你的爱好是:(“口”为复选框)
游泳 口
骑车 口
健身 口
...
省略号表示后面还有其他的爱好选项。
问题:在不知道有多少选项的前提下,如何将复选框与之一一对应   并且打印出一个人具体选了哪几项?
先谢谢各位了!!HTMLCheckBox

解决方案 »

  1.   

    应该是没了解复选框吧。
    复选框是有value的,(游泳口)这整个才是一个复选框,当选中的时候会有selected属性值表示被选中。你要使用就调用selected的就行了
      

  2.   

    给个思路吧,checkbox你设置值,value="1,2,3,4,5"这样一直设置下去,然后取到所有的值之后保存,然后在取回到前台是,截取字符串,和前台的checkbox进行判断,是就选择,不是就略过
      

  3.   

         就是说有多少爱好选项是不确定的 是后来由管理员来增删的  如果把复选框的个数定死了,一旦管理员增加一个爱好选项就会产生复选框个数不足。所以要设计一个循环来放置多个复选框。
        但问题是设计循环之后又如何知道一个人究竟选了哪些选项呢? 这个问题不会解决
    你的意思是爱好可以在添加?爱好是有一张自己单独的表吗?如果有的话,就保存进去在提取出来遍历就好了
    对的有一张表在数据库里 ,能说的再详细些吗?谢谢了
    单独的表,管理员操作时会保存一条爱好信息进入数据库里,而别人在选择的时候,会多出一条,其实和之前没什么区别,比如之前的爱好是4条,而这4条也是保存到数据库里的,你需要去后台查询到爱好的信息后,在选择爱好页面中遍历并每个都添加复选框并赋值value,然后,当别人选择的时候,传递这个数据到后台,保存这个value或者保存爱好的主键ID值到你的用户表中爱好字段中(姑且认为是一个用户选择了好多爱好),然后在查看用户的页面,爱好这里就可以去查询(存ID),或者直接遍历值了(存value)
      

  4.   

    但是建议是存ID,或者你自己设置的一个不重复的值,因为修改的话,用value来取东西很不方便
      

  5.   

    <script language="javascript">
    var arr;
    function btncheck(val){
    arr = new Array();
    var list = document.getElementsByName(val.name);
    for(var i=0;i<list.length;i++){
      if(list[i].checked) {
       arr[arr.length] = list[i].value;
      }
    }
    }
    function fuck(){
    alert("LZ的爱好是:\n"+arr);
    }
    </script>
    <input type="checkbox"  name="box" value="左手撸" onClick="btncheck(this)">左手撸 
    <input type="checkbox" name="box" value="右手撸" onClick="btncheck(this)">右手撸
    <input type="checkbox" name="box" value="左手飞机" onClick="btncheck(this)">左手打飞机
    <input type="checkbox" name="box" value="右手打飞机" onClick="btncheck(this)">右手打飞机
    <input type="button" value="点击查看LZ的爱好" onclick="fuck()"/>