我要实现多选删除,而且是根据Id删除,现在我想获取jsp页面上的Id数据并且把数据传递到后台,所有使用了复选框,然后判断,如果用户选中了复选框,就把该复选框对应的后台数据的Id传到后台,然后在后台根据Id删除数据库中的数据。现在有两个问题,怎样获取页面上的Id?怎样把这些Id传递到后台?(注:Id为多个所以要使用数组,把多个Id一次性传递到后台)

解决方案 »

  1.   

    checkbox的name弄成一样的后台来接收就行了。
      

  2.   

       js 复选框设值为id的值 遍历选中的复选框   直接取值 组成数组 
      

  3.   

    1楼说的也行  checkbox的name设为 id ,值为id的值   form提交 在后台可以直接取得
      

  4.   

    <input type="checkbox" name="custInfoId" value="${custInfo.custInfoId}"/>function deleteCustInfos(){
    var obj = document.fom.elements;
    for(var i = 0;i<obj.length;i++){
    if(obj[i].name=="custInfoId"&&obj[i].checked==true){
    var custInfoId = obj[i].value;
    }
    }
    }
    怎么把值弄到数组里面
      

  5.   

    不需要用js把checkbox的值存到数组里的,直接在servlet,从request里获得名字为custInfoId的参数就行了 得到那个东西就是个数组。
      

  6.   

    如果用struts的话,只要在action里有custInfoId这个属性和set get方法就行了。
      

  7.   

       
    var f = document.getElementsByName("clickcheck");
         var checkcount = 0;
         var id = '';
         for(var i = 0;i<f.length;i++)
         {
         if (f[i].checked )
         {
         checkcount++;
         id = id+f[i].value+',';
         }
         }
      

  8.   

    能不能说的详细点 本人用的是SSH框架 Struts2 现在要把Id值提交到action中
      

  9.   

    checkbox的value属性写成id,获取选中值的时候不用数组, 用逗号将每个id连接起来,这样到后台可以直接删了,SQL使用delete table where in();就可以了,方便很多.
      

  10.   

    你的action
    String[] checkBox; // 可以换成你的custInfoId......public String[] getCheckBox() {
    return checkBox;
    }public void setCheckBox(String[] checkBox) {
    this.checkBox = checkBox;
    }
    页面上有<input type="checkbox" name="custInfoId" value=""/>
    就行了,直接提交到这个action就OK了。
      

  11.   

    <input type="checkbox" name="custInfoId" value="${custInfo.custInfoId}"/>
    <input type="checkbox" name="custInfoId" value="${custInfo.custInfoId}"/>在action里用数组接收下就OK
      

  12.   

     用js获取所有选中的复选框的id,然后放到数组里面。然后再传给后台处理咯.
      

  13.   

    var userIdArray = new Array();
    function allCheck(chkbox){
         var checked = chkbox.checked;
         if(chkbox.id=="allCheckBox")document.getElementById("headCheckBox").checked=checked;
         if(!checked)userIdArray.length = 0;
         var checkboxs = document.getElementsByName("userCheckBox");
         for(var i = 0;i<checkboxs.length;i++){
         checkboxs[i].checked=checked;
         if(checked)userIdArray.push(checkboxs[i].value);
         }
         }location.href="xx.action?xx=userIdArray="+userIdArray;LZ,你明白的.
      

  14.   


    function commitInfo()
     {
      var oid=new Array();
      for(i=0;i<document.formName.ids.length;i++){
      if(document.fm.ids[i].checked ){
    oid.push(document.fm.ids[i].value);
      }
    }
    }
    ba把oid作为参数传过去  在后台获取:String ids = getParameter("ids");
    JSP 页面:<INPUT TYPE="checkbox" NAME="ids" id="ids" value=“***”>
    试试 我现在就是这样用的 不过我后台是Servlet 希望能帮助你解决问题
      

  15.   

    都用struts了  没有必要用前台的js存储复选框的数据要不就做的麻烦了
      

  16.   


    用这个应该可以实现了form获取checkbox里面的数组了action获取数组数据就OK了
      

  17.   


    在deleteCustInfos()中加:
    document.formname.method="post";
    document.formname.action="提交页面";
    document.formname.submit;
    然后在提交页面中:
    String[] checkbox=request.getParameterValues("custInfoId");
    int i=checkbox.length;
    Vector rs=new Vector();
    while (i>0)
    {
    rs.add(checkbox[--i]);
    }这样就把所有的custInfoId的值放到rs中了,把rs作为参数传到后台,
      

  18.   

    多谢各位大大 小弟已经实现多选删除了 
    <input type="checkbox" name="checkbox" id="checkbox" value="${custInfo.custInfoId}"/> function deleteCustInfos(){
      var obj = document.fom.elements;
      for(i = 0;i<obj.length;i++){
          if(obj[i].name=="checkbox"&&obj[i].checked==true){
          document.getElementById("fom").action="custInfo!deleteCustInfos.action";
      }
      }
      document.getElementById("fom").submit();
    }
    //action中用String数组接受就行了
    private String[] checkbox;
    public String[] getCheckbox() {
    return checkbox;
    } public void setCheckbox(String[] checkbox) {
    this.checkbox = checkbox;
    }//删除多条记录
    public String deleteCustInfos(){
    for(int i =0;i<checkbox.length;i++){
       int id = Integer.parseInt(checkbox[i]);
       custInfoService.deleteCustInfoById(id);
    }
    List<CustomerInfo> custInfos = custInfoService.findAllCustInfos();
    getRequest().put("custInfos", custInfos);
    return "listCustInfos";
    }
    还是以前的方法 哎..实在太简单了 竟然做了这么长时间.