<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<%@ taglib uri="/struts-tags" prefix="struts"  %>
<script type="text/javascript">
function SetCommand(value)
{
//document.all('command').value = value;
}function SetAllCheck(value)
{
var array = document.getElementsByName('id');
var array1 = new ArrayList();
for(var i = 0; i < array.length;i++)
{
array[i].checked=value;
}
}
</script>
<title><struts:property value="titile" escape="false" /></title>
<a href="addPerson.jsp" >新建人员资料</a>
<link href="css/FormUITag.css" rel="stylesheet" type="text/css" />
<table>
  <tr bgcolor="#FFFFFF">
   <th></th>
    <th>ID</th>
    <th>姓名</th>
    <th>年龄</th>
    <th>性别</th>
    <th>密码</th>
  </tr>
  <struts:iterator var="userOneInfo1" value="personlist">
  <td><input type =checkbox name=id value = "+${userOneInfo1.id}+" /></td>
  <td>${userOneInfo1.id}</td>
  <td>${userOneInfo1.name}</td>
  <td>${userOneInfo1.age}</td>
  <td>${userOneInfo1.sex}</td>
  <td>${userOneInfo1.password}</td>
  <td>><a href='<struts:url action="editPerson" />?userOneInfo.id=${id}'> 修改</a> </td> 
  <td>><a href='<struts:url action="deletePerson" />?userOneInfo.id=${id}'> 删除</a> </td> 
  </tr>
  </struts:iterator>
  <struts:hidden name="command" id="comand"/>
  <struts:hidden name="delID" id="delID"/>
  <input type ="button" name="Alldel" value="全部选中" onclick="SetAllCheck(true);"/>
  <input type ="button" name="Alldel" value="全部不选中" onclick="SetAllCheck(false);"/>
  <td><a href="<struts:url action="deletePerson" />"> 删除全部</a> </td> 
</table>在上面的jsp页面中,如果希望选中几条记录,然后删除,如何能得到选中的记录的id,并传给action。
请高手指点一下。

解决方案 »

  1.   

    定义在同一个nameaction中,定义一个相同name的集合,struts会自动传递过去的~然后处理那个集合就可以了~
      

  2.   

    这样可以吗?
    是普通的checkbox    不是struts:checkbox可以这样做吗?我用的是struts2
      

  3.   

    var mainsel = document.getElementsByName("id");
    var values = "";
    for(var i=0;i<mainsel.length;i++){
    if(mainsel[i].checked ==true){
    if(values == ""){
    values = mainsel[i].value;
    }else{
    values = values + "," + mainsel[i].value;
    } }
    }在后台,用逗号截取一下。。就是得到的数组了
      

  4.   

    和你是什么类型的checkbox没有任何关系。。只要是checkbox并且有name属性就行了
      

  5.   


    可以啊,後臺就一個List<String> id;就可以
      

  6.   

    你选中多个checkbox,他们的name都是selected那么你在Action中定义一个List<Integer> selected;(记得要写它的get/set)或者你还可以List<Person> persons;(get/set)你页面中定义checkbox的名字为:persons.id,Struts也会自动完成对象的封装的。
      

  7.   

       你先拿到它选中checkBox的编号,再根据编号去数据库里面查询再根据查询的编号删除!
      

  8.   

    给你几个JS函数吧
    //全选
    function selAll()
    {
    for(i=0;i<document.form2.id.length;i++)
    {
    if(!document.form2.id[i].checked)
    {
    document.form2.id[i].checked=true;
    }
    }
    }
    //全不选
    function noSelAll()
    {
    for(i=0;i<document.form2.id.length;i++)
    {
    if(document.form2.id[i].checked)
    {
    document.form2.id[i].checked=false;
    }
    }
    }//取得多选Id,elementName就是你的多选框的
    function getCheckedIds(elementName){
     var selChk = "";
        var chks = document.getElementsByName(elementName);
             for(var i=0;i< chks.length; i++) {
               if( chks[i].checked ) {
                  selChk += chks[i].value + ",";
               }
             }
             alert( selChk );
    }
      

  9.   

    正好我有写到这个,呵呵
    js如下:
    function deleteBeans() {
    var n = 0;
    var ids = document.getElementsByName("ids");
    for (i = 0; i < ids.length; i++) {
    if (ids[i].checked)
    n++;
    }
    if (n == 0) {
    alert("请选择要删除的应用");
    return false;
    }
    if (confirm("确认删除所选的" + n + "个应用吗?")) {
    document.frm.command.value = "delete";
    document.frm.submit();
    }
    }
    页面的chackbox如下:
    <input type="checkbox" name="ids"value="${item.ID}"></td>后台代码(获得js来的ids中的信息):
    String[] ids = request.getParameterValues("ids");
    if (ids == null || ids.length == 0)
    return null;
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < ids.length; i++) {
    if (sb.length() > 0)
    sb.append(',');
    sb.append(NumberUtils.toLong(ids[i]));
    }然后sb.toString就是所有拟传来的ID
    String sql = "delete from CupApp where id in(" + sb.toString()+ ")";
    在执行这个sql就可以了
      

  10.   

    $("[class='checkitem'][checked]").each(function(item) {
                        ids = ids + $(this).val() + ',';
                    });
                    ids = ids.substring(0, ids.length - 1);
    这样会把你选中的所有checkbox绑定的id拼接成ids,  然后把ids传到后台,通过split 分割 再进行删除即可。
      

  11.   

    前面加一个checkbox,选中的就删除,不选中就不删除