利用checkbox删除数据的做法
来源:互联网 发布:网络舆情引导机制 编辑:程序博客网 时间:2024/05/20 14:25
说实话挺失败本来想用js写个原生的ajax出来提交删除的,但是失败了,时间紧就用了jqueryAjax提交,这里做个记录和讲解吧,免得以后自己忘了。
首先jsp页面
<div class="main"><div class="optitle clearfix"><em><input type="button" name="button" value="添加数据" class="input-button" onclick="location.href='pages/jsp/modify.jsp'" /></em><em><input type="button" name="button" value="查询数据" class="input-button" onclick="location.href='billsList.action'" /></em><em><input type="button" name="button" value="删除数据" class="input-button" id="delete"/></em><div class="title">账单管理>></div></div><div class="content"><table class="list"><tr><td>全选<input type="checkbox" name="allcheckbox" id="allchoose" onclick="checkAll();"/></td><td>账单编号</td><td>商品名称</td><td>商品数量</td><td>交易金额</td><td>是否付款</td><td>供应商名称</td><td>商品描述</td><td>账单时间</td></tr><c:forEach items="${bills}" var="bill"><tr><td><input type="checkbox" name="billdel" value="${bill.id}"/></td><td>${bill.id}</td><td>${bill.name}</td><td>${bill.count}</td><td>${bill.money}</td><td><c:if test="${bill.payfor eq 0}"><c:out value="未付款"/></c:if><c:if test="${bill.payfor eq 1}"><c:out value="已付款"/></c:if></td><td>${bill.suppName}</td><td>${bill.content}</td><td>${bill.time}</td></tr></c:forEach></table></div>checkbox最好的把id属性和name属性都写上。删除按钮也最好是写上id和name属性
/** *传到action的checkbox数组 */$(function(){$("#delete").bind("click",function(){var bill = $("input[name='billdel']:checked").serialize();$.ajax({url: "deleteBills.action",type: "post",data: bill,async:true,success: function () {location.reload();//提交数据成功后,返回来要执行的函数}});});});这个就是jquery方法的ajax,解释一下:
$("#delete").bind("click",function() 这句就是说找到id为delete的bind绑定一个click事件
var bill = $("input[name='billdel']:checked").serialize();这句的bill其实被语句一赋值,就是个数组了,serialize是
序列化一组表单元素,将表单内容编码为用于提交的字符串。
success:function()是提交成功后,在执行的函数,里面我重新加载了一下数据。不然删除了数据,页面不动看不到效果。其他参数就简单。
这个bill数组我是提交到Struts2的action里面的,所以在action里面要建立一个以checkbox的name属性值(billdel) int[] billdel;变量。第一块代码中能找到。在action中添加get/set方法。
int[] billdel;public int[] getBilldel() {return billdel;}public void setBilldel(int[] billdel) {this.billdel = billdel;}这样action就能直接接收到了。不用做其他的。
在action中通过for循环把biildel循环出来你会发现数组的每个值就是value值,
<input type="checkbox" name="billdel" value="${bill.id}"/>这样就可以用id来找要删除的语句了,我用的是ssh框架,具体的在daoImpl里面:
String hql = "delete Bill where id=?";@Overridepublic void deleteBillsList(int[] param1) {Session si = factorytools.getSession();Query query ;for(int i=0;i<param1.length;i++){query = si.createQuery(hql);int param = param1[i];query.setInteger(0,param);query.executeUpdate();}}代码就是这样的。
希望你们看了能和我交流下用js写原生的Ajax提交删除。
补充一下:全选checkbox的js
/** * checkbox的全选按钮 */function checkAll() { for (var i = 0; i < document.getElementsByName("billdel").length; i++) { document.getElementsByName("billdel")[i].checked = document.getElementById("allchoose").checked; } }这个是用js写的,其实你把他换成jquery的写法一样可以,逻辑反正就是这么样的。第一片jsp页面代码有全选checkbox里面有个onclick属性就是调用的这个js
1 0
- 利用checkbox删除数据的做法
- 利用checkbox 删除gridview里的数据
- 利用checkbox 删除gridview里的数据
- 删除选中的checkbox数据
- 批量删除 数据(checkbox)
- C# winform ListView+CheckBox的做法
- 对带有Checkbox的DataGrid数据删除确认操作
- thinkphp中如何利用checkbox批量删除数据
- JAVA利用迭代器快速的删除数据
- 利用xml数据岛实现多级关联下拉选择框的做法
- 利用xml数据岛实现多级关联下拉选择框的做法
- 利用xml数据岛实现多级关联下拉选择框的做法
- 利用xml数据岛实现多级关联下拉选择框的做法
- Linux删除旧内核的安全做法
- iOS 中删除cookie的正确做法
- 利用jsp中request对象getParameterValues(String name)方法同时删除多个checkbox的值
- CheckBox的全选、取消、删除
- 多视的情况下如何在视之间传递数据?MFC的做法是利用文档来处理
- Android L SurfaceFlinger dump信息全解(一)
- 批量修改|导入Unity3d资源属性,帮助那些遗忘勾、选项的美术同学们 (其实我做美术的时候也一样有健忘症)
- [AWS 入门] CLI
- Android Studio、Git 解决合并冲突
- UVa 437 The Tower of Babylon
- 利用checkbox删除数据的做法
- Qt学习之路(32): 一个简易画板的实现(Graphics View)
- 中文乱码的解决之道,理清UTF8,UTF16,GB2312,Big5,Unicode之间的关系
- android 淘宝天猫支付宝浏览器打开本地app传递参数打开应用内页
- CSS中的em单位
- 主从数据库架构
- 华为牛人的成长经历
- LeetCode题解-144-Binary Tree Preorder Traversal
- centos6 编译nginx1.9.1