利用checkbox删除数据的做法

说实话挺失败本来想用js写个原生的ajax出来提交删除的,但是失败了,时间紧就用了jqueryAjax提交,这里做个记录和讲解吧,免得以后自己忘了。

首先jsp页面

<div class="main">
	<div class="optitle clearfix">
		<em><input type="button" name="button" value="添加数据" class="input-button" οnclick="location.href='pages/jsp/modify.jsp'" /></em>
		<em><input type="button" name="button" value="查询数据" class="input-button" οnclick="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" οnclick="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=?";
	@Override
	public 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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第7章 数据绑定控件 300 7.1 数据绑定技术 301 实例188 格式化订货金额和订单日期并 进行绑定 301 实例189 使用绑定表达式高亮显示搜索关键字 302 实例190 Eval()绑定图书图片并实现单击图片 进行链接 304 实例191 Eval()方法绑定日志并用“…”代替 超长内容 305 实例192 双向绑定Bind()方法实现更新最新 电影信息 306 实例193 绑定DataTable对象显示银行月利息 及本息 307 7.2 GridView控件基本应用 308 实例194 GridView数据绑定并实现自带 分页功能 308 实例195 实现选中、编辑和删除GridView中的 商品信息 310 实例196 供求信息网审核发布信息 (审核权限设置) 312 实例197 获取GridView控件中隐藏的列值 314 实例198 在GridView控件中实现商品信息 自动编号 315 实例199 GridView绑定数据为空时的界面设计 316 实例200 GridView强制换行显示论坛帖子的 详细信息 317 实例201 查看GridView当前行绑定的商品 详细信息 319 实例202 GridView复选框绑定列设置商品 是否上架 320 实例203 使用主题来设置GridView控件的外观 322 7.3 GridView控件72般绝技 323 实例204 实现搜索GridView多个关键字高亮 显示 323 实例205 高亮显示数据行并实现双击数据行 弹出新窗口 325 实例206 学生成绩不及格设置单元格突出显示 为红色 326 实例207 根据多个字段内容设置不同数据行的 背景色 327 实例208 自定义分页并结合下拉列表实现页次 切换 328 实例209 结合分页模板PagerTemplate实现 自定义分页 330 实例210 在GridView控件中动态添加模板列 331 实例211 带上下箭头排序并实现查询数据为 空显示表头 334 实例212 GridView自动求和及合并多列多行 单元格 336 实例213 GridView合并行或列单元格的5种 通用方式 338 实例214 GridView删除数据时弹出确认对话框 (含内容提示) 340 实例215 GridView数据源为空时显示表头和 提示信息 341 实例216 创建表头固定、表体可滚动的 GridView控件 342 实例217 可拖动列、可排序、可改变宽度的 GridView控件 344 实例218 使用“…”优化GridView控件中的 超长字符显示 345 实例219 一次性编辑GridView控件的所有行 中的数据 347 实例220 嵌套DropDownList控件根据库存量 设置商品停售 348 实例221 嵌套CheckBox实现批量删除和更新 供求信息 349 实例222 结合CheckBox实现密码重置 (MD5加密) 351 实例223 结合哈希表设置在线考试后台管理 权限 353 实例224 嵌套GridView控件实现商品信息 明细表 354 实例225 将GridView控件的数据导出到Excel 并进行格式化 355 实例226 将Excel中数据导入到Aceess 并绑定GridView 356 实例227 将GridView中绑定的Access数据 生成XML 358 实例228 嵌套购物车(可增减商品数并显示 摘要信息) 359 实例229 使用LINQ实现GridView控件分页 功能 361 实例230 LINQ绑定GridView实现编辑和删除 数据 362 实例231 开发针对GridView自定义分页的用户 控件 364 7.4 灵活访问数据俊杰:DataList控件 365 实例232 分页绑定DataList数据并实现页面 跳转功能 365 实例233 开发针对DataList控件分页功能的 用户控件 368 实例234 使用DataList删除数据(支持批量 删除) 370 实例235 利用DataList控件智能化查看详细 信息 371 实例236 编辑绑定在DataList控件中的商品 信息 373 实例237 利用嵌套DataList控件显示商品明细 信息 374 实例238 查找嵌套在DataList控件中的多个 服务器控件 376 7.5 王牌现身:全新的ListView控件 377 实例239 以独立DataPager控件设置ListView 的分页 377 实例240 异步无刷新水平滚动照片 (AJAX+ListView) 379 实例241 编辑绑定在ListView中的照片 (ADO.NET版) 380 实例242 编辑绑定在ListView中的照片 (LINQ版) 382 实例243 高亮显示ListView中的数据行并实现 图片自动变换 384

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值