日期:2014-05-18  浏览次数:20683 次

选择性的修改一个列表中的几条记录
我现在遇到一个分页中的问题,就是在用table显示列表信息时,每一行对应一条记录信息,在每一行前面有个复选框,用户可以编辑记录信息,然后在修改的的记录前面的复选框打勾,然后在数据库中刷新相应的记录!
我用的是struts,我想这个问题大家应该都遇到过,不知道你们怎么解决的?


------解决方案--------------------
我做structs碰到过,把要编辑的查询结果放在文本框里,有一些特殊内容是放下拉条里.利用查询表的主键来给每个文本框和复选框动态命名.用户选择了几行,并做内容修改,每次翻页就会保存.而且修改时还要动态校验是否有效日期,规定格式数字等等.文本框和复选框要用普通html标签.在action里用request接收.
------解决方案--------------------
首先是一翻页的时候就保存
可以用JS做一些包装,在提交上服务前做一些处理.
把所有的数据对应的组织一下.
用JS判断选择哪些数据修改,然后用一些分隔符连接起来,在服务器里就可以解析这些数据.
比如说要改变名字,和地址.
显示的时候
checkbox name1 addr1
checkbox name2 addr2
checkbox name3 addr3
在js 里做个for,判断哪个被选中了,一个循环变量i从1开始
if(对应的复选框选中了)
{
id+=当前复选框的值(一般是id吧)+ "!@# "
name+=document.getElementById( "name "+i).value+ "!@# ";
addr+=document.getElementById( "addr "+i).value+ "!@# ";
}

然后是提交

location.href= "提交的页?id= "+id+ "&name= "+name+ "&addr= "+addr;
在服务器上就可以解析这些字符,跟对应的ID关联起来就可以更改数据库了,要注意把最后的一个 "!@# "去掉了,还要注意页面只有一条记录的情况