while(rs.next())
{
%>
<td><input type=checkbox name=checkbox value="<%=rs.getString("ID")%>"></td>
<td><%=rs.getString("")%></td>
提交过去就是所有选中的

解决方案 »

  1.   

    你用for循环生成的checkbox 时名称相同系统会自动把它作为一个数组,你可以在提交的页面里用
    String [] checks = request.getParameterValues("your_check_name");
    if(checks == null )
    {
    一个都没选
    }
    else{
    for(int i = 0 ; i < checks .length ; i++){
       string str=checks [i]);
      if(str!=null)
        bean.del(str);//str作为主键
    }
      

  2.   

    String[] id=request.getParameterValues("checkboxname");
      

  3.   

    做一个temp数组用循环加上request.getParameterValues方法。然后进入数据库
      

  4.   

    没有选中的用request.getParameterValues方法是得不到值得等最好先判断取道的值(str[i]!=""&&str[i]!=null)...然后进数据库避免非法的数据
      

  5.   

    检索完所有的选择后再删除,
    String[] id=request.getParameterValues("checkboxname");
    StringBuffer tmp= new StringBuffer();
    for(int i=0;i<id.length();i++)
    {
    if(id[i]!=null) sql.append( " and id=" + id[i]);
    }
    String sql = "delete tablename where " + sql.toString().substring(4,sql.toString().length())
    //数据库删除
      

  6.   

    因为:主键是int型的。所以我需要把获得的String[] id转变成int 但是运行报错:for(int i = 0 ; i < checks.length; i++){
         String  str1=checks[i];
         int   strtoint=Integer.parseInt(str1);

    不对吗?
      

  7.   

    错误如下
    java.lang.NumberFormatException: 11
      

  8.   

    应该
    for(int i = 0 ; i < checks .length ; i++){
       string str=checks [i]);
      if(str!=null)
        int   strtoint=Integer.parseInt(str1);
      

  9.   

    checks数组中值是这样的如:3,null,5,8,null,6,.....这些值对应每一个checkbox,选中的就有对应的值,没选种的就为空所以你只要判断不为null就说明选种了
      

  10.   

    java.lang.NumberFormatException: 8 还是这个错
      

  11.   

    部分程序代码如下:
    String [] checks = request.getParameterValues("checkbox");
      if(checks == null )
      {
      out.println("没有选中要删除的记录");  }
       else
        {
         try
    {
      dbsql  condb=new dbsql();
      condb.opendb();
        for(int i = 0 ; i < checks.length; i++){
         String  str1=checks[i];
         if(str1!=null)
         {
           int  str=Integer.parseInt(str1);       java.sql.CallableStatement  stmt=condb.conn.prepareCall("{call up_wy_cx_ls_delete(?,?)}");
           stmt.setInt(1,str);
           stmt.registerOutParameter(2,1);
           stmt.execute();
      

  12.   


    trim()一下看看
    int  str=Integer.parseInt(str1.trim());
      

  13.   

    你把checks[i]数组中的数用for 循环都打印出来,看都是什么值,有没有非数字的
      

  14.   

    出现这种错误
    java.lang.NumberFormatException: xh
    at java.lang.Integer.parseInt(Integer.java:426)
    at java.lang.Integer.parseInt(Integer.java:476)
    at org.apache.jsp.del_0005ffromdb$jsp._jspService(del_0005ffromdb$jsp.java:79)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:202)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
    其中xh为checkbox的value
      

  15.   

    你的checkbox的值怎么会有非数字的?你不是说都是int?
      

  16.   

    是int的
    代码片段:
     int xh=rset.getInt("XH");
    %>
    <tr bgcolor=LightGoldenrodYellow>
    <td><input type="checkbox" name="checkbox" value="xh"></td>
      

  17.   

    就是循环打印,也出现java.lang.NumberFormatException: xh
    这种错误!
    看来还是接受有问题:???还请高手多出出点子!从贴子上查到:有人说:同名传过来的checkbox是已数组并已","分割传过来的,不知道怎么取
      

  18.   

    实在不行换一种方法(不过麻烦些)首先在前面的页面写如下代码,功能是把所有选种的值拼成一个串用逗号分开防到一个hidden里
    然后在提交页解析出来,select1为checkbox的name,parm为hidden的name,在提交按钮调用ok()函数
    <script language="javascript">
    function ok()
    {
    var str="";
    var len;
    len=document.form1.select1.length;
    //alert("len=="+len);
    if(len >0)
    {
    for(i=0;i<len;i++)
    {
      if(document.form1.select1[i].checked)
      {
       if(str.length==0)
     str=document.form1.select1[i].value;

       else
     str=str+","+document.form1.select1[i].value;
      } }
    }
    else
    {
     if(document.form1.select1.checked)
     str=document.form1.select1.value;
    }
     if(str.length==0)
     {
      alert("注意:请先选择再删除");
      return false
     }
     document.form1.parm.value=str; 
      }
    <input type="hidden" name="parm">
     <input type="submit" name="Submit" value="删除" onclick="return ok()" >
    //-->
    </script>
    在提交的页面写如下代码<%
     String str= request.getParameter("parm");
       System.out.print("this is"+str);
       int curPos=0;
       int prePos=0;
       String subStr=null;
       Vector comp=new Vector();
      
    if((str!=null)&&(str.length()!=0))
    {  
    while((curPos=str.indexOf(',',prePos))!=-1)
    {
    subStr=new String();
    subStr=str.substring(prePos,curPos);
    if(subStr==null)
    {
    subStr="";
    }
    prePos=curPos+1;
    comp.addElement(subStr);
    }
    subStr=new String();
    subStr=str.substring(prePos,str.length());
    comp.addElement(subStr);
    }
    for(int m=0;m<comp.size();m++)
    {
         String tmp=comp.elementAt(m);
     System.out.println("the checked value===="+tmp);//tmp就是选种的checkbox的值
    }
    %>
      

  19.   

    怎么还是不显示xh的值
    输出如下:
    this isxhthe checked value====xh
      

  20.   

    原来是这里的事
    <td><input type="checkbox" name="checkbox" value="xh"></td>
    该为
    <td><input type="checkbox" name="checkbox" value="<%=xh%>"></td>
      

  21.   

    haha,我也刚刚发现,刚要告诉你呢,哎,问题终于解决了,揭贴!谢谢liucm(雪山飞狐)!