我的JSP页面上有一个从数据库循环取出的数据 接着在每条数据的前面都有一个
<input type="checkbox" id="checkbox" name="checkbox"  value="${p.id}"/> 
现在我要将这个数组传到struts2的action当中 但是不能通过FORM传 只能通过按钮点击 触发 我是这么做的     <input type="button"   value="提交兴趣" onclick="$.launchPage('<%=path %>/test/test.action?checkbox='+document.getElementById('checkbox').value)" /> action中写了一个 String[] checkbox; 分别给了getter setter了这样在action当中获取的时候 只获取到了第一条选中的数据 请问如何获取 用户复选的所有数据集合呢?最好能贴个代码 谢谢

解决方案 »

  1.   

    你id name都是一样的。你这样用js取肯定只能获取到一条记录的、为什么不能通过form传递呢?
      

  2.   

    问题已经解决 直接上代码 遇到同样问题的童鞋可以照此解决.但是实际上我更希望能够传一个数据 而不是一个字符串 在进行拆分
    这是js获取选中的数据的
    function checkboxs()
    { var str=document.getElementsByName("checkbox");

    var objarray=str.length;
    var chestr="";
    for (i=0;i<objarray;i++)
    {
      if(str[i].checked == true)
      {
       chestr+=str[i].value+"|";
      }
    }
    if(chestr == "")
    {
      alert("没有选择要试发的客户数据");
    }
    else
    {
      alert("您先择的是:"+chestr);
      $.launchPage('<%=path %>/testmail/sendMail.action?checkbox='+chestr)
    }
    }然后提交按钮里面直接oncilck就不用说了 
    struts2的action中设置一个String checkbox 而不是String[] 接着在Action中以,号在进行拆分.
      

  3.   

    取多个,一样用document.get……ById啊。。
      

  4.   

    为什么不用struts2的checkboxlist标签呢,直接传一个list
      

  5.   

    用不着这么麻烦,用checkboxlist不能达到楼主的要求。直接用<input type="checkbox" name="chkBuildId" value="${XXXXXXX}" />,只要把checkbox的name都设置一样,如chkBuildId,然后在action里写一个同名的chkBuildId数组即可。你用form表单提交时,struts2就自动给你把选中的checkbox的value给填进去了