急!JavaScript问题

TheDaydream 2011-01-20 02:06:43
我要实现多选删除,而且是根据Id删除,现在我想获取jsp页面上的Id数据并且把数据传递到后台,所有使用了复选框,然后判断,如果用户选中了复选框,就把该复选框对应的后台数据的Id传到后台,然后在后台根据Id删除数据库中的数据。现在有两个问题,怎样获取页面上的Id?怎样把这些Id传递到后台?(注:Id为多个所以要使用数组,把多个Id一次性传递到后台)
...全文
145 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunliao_first 2011-01-20
  • 打赏
  • 举报
回复
方法有好多种!
zm_hs 2011-01-20
  • 打赏
  • 举报
回复
document.getElementsByName()
TheDaydream 2011-01-20
  • 打赏
  • 举报
回复
多谢各位大大 小弟已经实现多选删除了
<input type="checkbox" name="checkbox" id="checkbox" value="${custInfo.custInfoId}"/>

function deleteCustInfos(){
var obj = document.fom.elements;
for(i = 0;i<obj.length;i++){
if(obj[i].name=="checkbox"&&obj[i].checked==true){
document.getElementById("fom").action="custInfo!deleteCustInfos.action";
}
}
document.getElementById("fom").submit();
}
//action中用String数组接受就行了
private String[] checkbox;
public String[] getCheckbox() {
return checkbox;
}

public void setCheckbox(String[] checkbox) {
this.checkbox = checkbox;
}

//删除多条记录
public String deleteCustInfos(){
for(int i =0;i<checkbox.length;i++){
int id = Integer.parseInt(checkbox[i]);
custInfoService.deleteCustInfoById(id);
}
List<CustomerInfo> custInfos = custInfoService.findAllCustInfos();
getRequest().put("custInfos", custInfos);
return "listCustInfos";
}
还是以前的方法 哎..实在太简单了 竟然做了这么长时间.
zgl217 2011-01-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 thedaydream 的回复:]
<input type="checkbox" name="custInfoId" value="${custInfo.custInfoId}"/>

function deleteCustInfos(){
var obj = document.fom.elements;
for(var i = 0;i<obj.length;i++){
if(obj[i].name=="custInfoI……
[/Quote]

在deleteCustInfos()中加:
document.formname.method="post";
document.formname.action="提交页面";
document.formname.submit;
然后在提交页面中:
String[] checkbox=request.getParameterValues("custInfoId");
int i=checkbox.length;
Vector rs=new Vector();
while (i>0)
{
rs.add(checkbox[--i]);
}

这样就把所有的custInfoId的值放到rs中了,把rs作为参数传到后台,
heardy 2011-01-20
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 xyylove520 的回复:]
你的action

Java code

String[] checkBox; // 可以换成你的custInfoId

......

public String[] getCheckBox() {
return checkBox;
}

public void setCheckBox(String[] checkBox) {
this.checkBox……
[/Quote]

用这个应该可以实现了

form获取checkbox里面的数组了

action获取数组数据就OK了
heardy 2011-01-20
  • 打赏
  • 举报
回复
都用struts了 没有必要用前台的js存储复选框的数据

要不就做的麻烦了
疯小 2011-01-20
  • 打赏
  • 举报
回复

function commitInfo()
{
var oid=new Array();
for(i=0;i<document.formName.ids.length;i++){
if(document.fm.ids[i].checked ){
oid.push(document.fm.ids[i].value);
}
}
}
ba把oid作为参数传过去 在后台获取:String ids = getParameter("ids");
JSP 页面:<INPUT TYPE="checkbox" NAME="ids" id="ids" value=“***”>
试试 我现在就是这样用的 不过我后台是Servlet 希望能帮助你解决问题
屌丝团 2011-01-20
  • 打赏
  • 举报
回复
var userIdArray = new Array();
function allCheck(chkbox){
var checked = chkbox.checked;
if(chkbox.id=="allCheckBox")document.getElementById("headCheckBox").checked=checked;
if(!checked)userIdArray.length = 0;
var checkboxs = document.getElementsByName("userCheckBox");
for(var i = 0;i<checkboxs.length;i++){
checkboxs[i].checked=checked;
if(checked)userIdArray.push(checkboxs[i].value);
}
}

location.href="xx.action?xx=userIdArray="+userIdArray;

LZ,你明白的.
屌丝团 2011-01-20
  • 打赏
  • 举报
回复
用js获取所有选中的复选框的id,然后放到数组里面。然后再传给后台处理咯.
D314123499 2011-01-20
  • 打赏
  • 举报
回复
<input type="checkbox" name="custInfoId" value="${custInfo.custInfoId}"/>
<input type="checkbox" name="custInfoId" value="${custInfo.custInfoId}"/>

在action里用数组接收下就OK
2011-01-20
  • 打赏
  • 举报
回复
你的action

String[] checkBox; // 可以换成你的custInfoId

......

public String[] getCheckBox() {
return checkBox;
}

public void setCheckBox(String[] checkBox) {
this.checkBox = checkBox;
}


页面上有<input type="checkbox" name="custInfoId" value=""/>
就行了,直接提交到这个action就OK了。
Spring89 2011-01-20
  • 打赏
  • 举报
回复
checkbox的value属性写成id,获取选中值的时候不用数组, 用逗号将每个id连接起来,这样到后台可以直接删了,SQL使用delete table where in();就可以了,方便很多.
TheDaydream 2011-01-20
  • 打赏
  • 举报
回复
能不能说的详细点 本人用的是SSH框架 Struts2 现在要把Id值提交到action中
wiselight 2011-01-20
  • 打赏
  • 举报
回复

var f = document.getElementsByName("clickcheck");
var checkcount = 0;
var id = '';
for(var i = 0;i<f.length;i++)
{
if (f[i].checked )
{
checkcount++;
id = id+f[i].value+',';
}
}
2011-01-20
  • 打赏
  • 举报
回复
如果用struts的话,只要在action里有custInfoId这个属性和set get方法就行了。
2011-01-20
  • 打赏
  • 举报
回复
不需要用js把checkbox的值存到数组里的,直接在servlet,从request里获得名字为custInfoId的参数就行了 得到那个东西就是个数组。
TheDaydream 2011-01-20
  • 打赏
  • 举报
回复
<input type="checkbox" name="custInfoId" value="${custInfo.custInfoId}"/>

function deleteCustInfos(){
var obj = document.fom.elements;
for(var i = 0;i<obj.length;i++){
if(obj[i].name=="custInfoId"&&obj[i].checked==true){
var custInfoId = obj[i].value;
}
}
}
怎么把值弄到数组里面
行云之云 2011-01-20
  • 打赏
  • 举报
回复
1楼说的也行 checkbox的name设为 id ,值为id的值 form提交 在后台可以直接取得
行云之云 2011-01-20
  • 打赏
  • 举报
回复
js

复选框设值为id的值 遍历选中的复选框 直接取值 组成数组
2011-01-20
  • 打赏
  • 举报
回复
checkbox的name弄成一样的

后台来接收就行了。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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