关于checkbox提交数据的问题

canyingwushang 2008-12-23 08:48:02
最近做一个项目,页面上有一个需求,如下:
从后台传来一个List对象,List里面是很多document对象,document包括很多属性,在页面上要求用表格显示出来,即每一个document对象的属性显示为一行,一共N行,然后在表格的前面添加一列放置很多checkbox复选按钮,要求是当点击提交按钮的时候,把选中的checkbox后面所对应的数据提交到后台,即选中哪些行就提交哪些行的数据,这个该怎么实现?如果用struts那ActionForm怎么写合适?
Document属性:
ID
title
detail
createDate
...全文
261 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jack0511 2008-12-23
  • 打赏
  • 举报
回复
方案一:
可以把Document四个属性: ID title detail createDate一起放到value的值当中,用逗号隔开,name用一个公共的字符串+list的index组合一下,如
根据list循环
<%if(list!=null&&list.size>0){
for(int i=0;i<list.size;i++){
... 取每个document
%>
<input type="checkbox" name="document"+<%=i%> value="1000,test,testet,20081223" /> ...
<%}
}%>

提交到后台先判断request.getParameterValues("document0")是否为空,再根据得到的值用逗号拆分一下

方案二:做一个隐藏域,比如:<input type="hidden" name="dv" value="" />
每当触发一个check或uncheck事件的时候都把结果(ID title detail createDate)用javascript方法更新到隐藏域中,最后提交,

document.form.dv.value="ID1,title1,detail1,createDate1;ID2,title2,detail2,createDate2;"
RJCHEN1985 2008-12-23
  • 打赏
  • 举报
回复
把你要传过去的值写成一个字符串"a-b-c-d-e-f-g"放在checkbox的value中,然后传到下一个页面时读到该值,然后split一下就好啦
sinsupakaka 2008-12-23
  • 打赏
  • 举报
回复
为每个checkbox增加一个隐藏域,用js将选中的值(innerHtml)赋予该隐藏域,在action中获取即可
canyingwushang 2008-12-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lanzhengwu 的回复:]
jsp:
--循环开始
<input type="checkbox" name="chk" value="获得的动态ID值" />
--循环结束
[/Quote]
这个方式我知道,用来传递一个值还行,但是我要提交的是页面显示的checkbox后面的一行数据,就不行了!我知道可以通过传递一个ID,然后再通过ID查询得到其他数据,但是我的这个功能不能采用这种方式,页面上显示的数据是经过大量逻辑处理后得到的,不能从数据库中查的
chengyu2099 2008-12-23
  • 打赏
  • 举报
回复
思路一:
可以用onclick事件 结合 AJAX 点击一个的时候就触发一次AJAX 传值到后台
思路二:
一次性传值到后台
选择完CHECKBOX以后,点击提交到后台 像一楼说的那样就可以了
lanzhengwu 2008-12-23
  • 打赏
  • 举报
回复
jsp:
--循环开始
<input type="checkbox" name="chk" value="获得的动态ID值" />
--循环结束
action:

String[] chk=request.getParameterValues("chk");//这就是前台所有选种的CHECKBOX的值
for(String str:chk){
System.out.println(str);//循环出所有选种的复选框
}

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧