代码如下:为了使不同题目能够分别选中,我设置的radio的名字为="<%=tihao%>" 
while(rs1.next())
      {
      id=rs1.getString("id");
      String neir=rs1.getString("neir");
      
 %>  
 
      <tr>
      <td>&nbsp;
           <input type="radio" name="<%=tihao%>" value="<%=id%>" >
      
      
      <%=neir%>
      
      </td>
      </tr>
      
    <%    
      }

解决方案 »

  1.   

    怎样在另外一个页面获取最终选中的radio的数值??
      

  2.   

    radio要想实现单选功能,name属性必须相同,页面上以id区分,提交后的页面直接使用request.getParameter("name")即可获得。大致如下:
    <input type="radio" name="test" id="<%=tihao%>" value="<%=id%>">String tihao = request.getParameter("test");
      

  3.   

    可能我没有表达清楚,我想实现的是类似下面的页面
    1 title
    单选框 xx
    单选框 xx
    单选框 xx
    单选框 xx
    2 title
    单选框 xx
    单选框 xx
    单选框 xx
    单选框 xx
    如果按照楼上所说,8个选项只能选择1个了,我希望是每个题目选一个,所以使用了
    <input type="radio" name="<%=tihao%>" value="<%=id%>" >
      

  4.   

    当radio的name相同时,会被看成是一组单选按钮。漫步者说的没错!!
    你只要把每个题生成的一组单选按钮的name设置成一样就可以了!
    提交是
    提交到哪个action就在那个action 获取request就可以
      

  5.   

    谢谢楼上的,可是我是想对一个jsp里面的所有题目全部传到另外一个页面,然后获取选中的。
      

  6.   

    我只是举了一个例子,name属性当然是按组划分,根据组的不同而不同,比如说第一题
    <input type="radio" name="title1" id="<%=tihao%>" value="<%=id%>">
    这个逻辑应该不是什么大问题,只是不了解你底层的数据库如何设计。
      

  7.   

    呵呵,把你每一道题中的单选框分成一个组(name一样为同一组,这个好像楼主不清楚)在你要接收的页面,分别接收各个组(用name接收)~~
      

  8.   

    忘了说了,我的题目全部是从数据库中提取的,可以动态改变的,所以name不能固定取一个名字
      

  9.   

    name不一定要固定呀,但是每一选项总是应该有一个属性标志它属于哪一到题目吧,不然怎么知道这些选项是哪个题目的呢,前台页面也就没有办法组织显示呀,使用这个属性作为name的值不就可以了吗。
      

  10.   

    对啊,我就是用tihao来标识每个题目属于哪个题目的啊。name=<%=tihao%>可是由于它又是动态的,在另外一个页面我就无法获取了
      

  11.   

    估计问题是lz不知道怎样在提交页面中获取动态生成的radio的name。
    建议将所radio的name加一个前缀名。如:question_<%=tihao%>
    用request.getParameterMap()取到所有的请求表单值,
    然后遍历出question_为前缀的就可以了。
      

  12.   

    我晕,name可以用题号,那么同一题的name肯定是一样的id 用 题号+选项号
      

  13.   

    用request.getParameterMap()取到所有的请求表单值,
    然后遍历出question_为前缀的就可以了。????怎样遍历呢?
      

  14.   

    <%String selectName = "SELECT"+String.valueOf(i);%>i是循环叠加的,根据题目的道数
    <input type="radio" name="<%=selectName%>" value="1">
    <input type="radio" name="<%=selectName%>" value="2">
    <input type="radio" name="<%=selectName%>" value="3">
    <input type="radio" name="<%=selectName%>" value="4">在另一个页面里,count是总题目条数,可以传过去
    for(int i=0;i<count;i++){
    String tempSelect = "SELECT" + String.valueOf(i);
    String select = (String)aInstance.getRequest().getParameter(tempSelect);
    if(select.equals("1")) 就是选中了第一个选项
    以此类推
    另外i=0就是第一道题,以此类推
      

  15.   

    name设一样,request.getparameter("name")得到的值为选中的那个
      

  16.   

    谢谢楼上的,可是我这里的数据库里面唯一标识各段的是用id。然后我仅要求得到选中题目的id才能进行后续操作。所以我在定义radio时用的是
     <input type="radio" name="<%=tihao%>" value="<%=id%>" >
    不能设置value的数值为1,2,3,4
      

  17.   

    数据库设计为
    id  tihao leix neir tnum
    1    1      0  xx   1
    2    1      0  xx   1
    3    1      0  xx    1
    4    1      0  xx    1
    5    2      0  xx   2
    6......
    tnum为计数的,比如选中tihao为1中的2,则第2行的tnum加1。
      

  18.   

    你id不要设置在radio里面,你可以设置个隐含域如
    <INPUT TYPE="hidden" NAME=selectId ID=selectId VALUE=<%=ID %>>
    然后再用我前面的方法
    <input type="radio" name="<%=selectName%>" value="1">
    <input type="radio" name="<%=selectName%>" value="2">
    <input type="radio" name="<%=selectName%>" value="3">
    <input type="radio" name="<%=selectName%>" value="4">
    ...在另一个页面里,你用
    String[] sKey= (String [])(aInstance.getRequest().getParameterValues("selectId"));
    可以得到id的数组
    sKey[i]就是第i道的题目的id
      

  19.   

    上面aInstance.getRequest(),你在jsp里可以直接用request的
    我那代码是我从java里拷出来,自己写的得到request的方法,
    不要误会,不好意思,呵呵。
      

  20.   

    不是,是你页面上所有题目的id。
    你在处理时循环处理,每个id对应的选项选了哪个也可以相关得到的呀
    在另一个页面里,count是总题目条数,可以传过去
    for(int i=0;i<count;i++){
    String tempSelect = "SELECT" + String.valueOf(i);
    String select = (String)aInstance.getRequest().getParameter(tempSelect);
    if(select.equals("1")) 就是选中了第一个选项
    以此类推
    另外i=0就是第一道题,以此类推sKey[i]就是第i道题的id
      

  21.   

    <input type="radio".... id = "xxx1">
    <input type="radio".... id = "xxx2">用document.getElementById("xxx1")
     document.getElementById("xxx2")指哪打哪~~~~~~
      

  22.   

    antony0203() 
    你说的单独看起来我都明白,可是联合起来用就不大清楚思路了,我是初学哈。你在处理时循环处理,每个id对应的选项选了哪个也可以相关得到的呀(怎么关联得到呢??)
    for(int i=0;i<count;i++){
    String tempSelect = "SELECT" + String.valueOf(i);
    String select = (String)aInstance.getRequest().getParameter(tempSelect);
    if(select.equals("1")) 就是选中了第一个选项
    select这个和sKey怎么结合用??
      

  23.   

    String[] sKey= (String [])(aInstance.getRequest().getParameterValues("selectId"));
    for(int i=0;i<count;i++){
      String tempSelect = "SELECT" + String.valueOf(i);
      String id = sKey[i];//得到题目id
    //下面是该id对应题目的选项处理
      String select = (String)aInstance.getRequest().getParameter(tempSelect);
      if(select.equals("1")){ //就是选中了第一个选项
         处理...
      }else if(select.equals("2")){
         处理...
      }
        ...}
    这么写能明白吗?
      

  24.   

    懂!不过在你的提醒下,我发现一种更加简单的方法。在前面的页面定义
    <input type="radio"  name="<%=tihao%>" value="<%=id%>" >
    在另外一个页面
    for(int i=0;i<count;i++)
    {
    String tempSelect =String.valueOf(i+1);
    String select = request.getParameter(tempSelect);
    System.out.println(select);
    String sql="Update toupiaonr set tpnum=tpnum+1 where id='"+select+"'";
      
       login.executeUpdate(sql); 
    }
    不过问题是选择每道题目第一项时select的数值通过System.out.println(select)是选择的那几项,可是在update后,数据库中把每道题的1,2项都加1了。
    如果选择的是每到题的2,3,4就可以正确增加,好奇怪哟!!