zoukankan      html  css  js  c++  java
  • 表格中删除选中的操作

    一、前言

    最近在做Javaweb的练习,有一个需求是删除表格中勾选的数据,这时需要获取哪个复选框是勾选的, 并提交到servlet中才能调用方法删除,如图


    二、思路

    在这里可以将整个表格外边加上一个form标签,把表格变成表单,这时就有了表单自带的action属性,就能提交数据到servlet中了。再在servlet中获取所有勾选的复选框就能调用方法进行删除了。



    三、实现

    jsp页面,在jsp页面中用了jstl标签来动态添加表格行数

    <form id="form" action="${pageContext.request.contextPath}/delSelectedServlet" method="post">
            <table border="1" class="table table-bordered table-hover">
                <tr class="success">
                    <th><input type="checkbox" id="firstCb"></th>
                    <th style="text-align: center">编号</th>
                    <th style="text-align: center">姓名</th>
                    <th style="text-align: center">性别</th>
                </tr>
                <c:forEach items="${pb.list}" var="user" varStatus="s">
                    <tr align="center">
                        <%--复选框中name设置为uid,value值设置为用户的id,可根据id在数据库中删除--%>
                        <th><input type="checkbox" name="uid" value="${user.id}"></th>
                        <td>${s.count}</td>
                        <td>${user.name}</td>
                        <td>${user.gender}</td>
                    </tr>
                </c:forEach>
            </table>
        </form>
    

    点击删除选中按钮提交表单我使用js代码来实现,并且为了防止没有勾选复选框点删除选中按钮出现空指针异常,在js里判断必须有勾选才会提交表单。

    //给删除选中按钮添加单击事件
                document.getElementById("delSelected").onclick = function () {
                    if (confirm("您确定要删除选中条目吗?")) {
                        var flag = false;
                        //判断是否有选中条目
                        var cbs = document.getElementsByName("uid");
                        for (i = 0; i < cbs.length; i++) {
                            if (cbs[i].checked) {
                                flag = true;
                                break;
                            }
                        }
                        if (flag) {//有选中条目,再提表单
                            document.getElementById("form").submit();
                        }
                    }
                }
    
    

    把表单提交到servlet中了,就获取勾选复选框的属性值,根据属性值操作数据库删除了

    public class DelSelectedServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //1.获取所有勾选的id
            String[] ids = request.getParameterValues("uid");
            //2.调用service删除,将勾选的复选框所对应的id数组传过去,操作数据库进行删除
            UserService service = new UserServiceImpl();
            service.delSelectedUser(ids);
            //跳转界面
            response.sendRedirect(request.getContextPath()+"/userListServlet");
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            this.doPost(request, response);
        }
    }
    



  • 相关阅读:
    【leetcode】1365. How Many Numbers Are Smaller Than the Current Number
    【leetcode】1363. Largest Multiple of Three
    【leetcode】1362. Closest Divisors
    【leetcode】1361. Validate Binary Tree Nodes
    【leetcode】1360. Number of Days Between Two Dates
    【leetcode】1359. Count All Valid Pickup and Delivery Options
    【leetcode】1357. Apply Discount Every n Orders
    【leetcode】1356. Sort Integers by The Number of 1 Bits
    ISE应用入门的一些问题
    DDR的型号问题
  • 原文地址:https://www.cnblogs.com/Alitac/p/12311286.html
Copyright © 2011-2022 走看看