如上图所示,我想实现点击单选框选择一条记录,然后再点击删除按钮,删除这条记录。应该如何传递记录的id值
我的jsp代码如下
<%@ page language="java" import="java.util.*,com.bean.*" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  
  <body>
  <script type="text/javascript">
   fucntion getInfo(){
   var text =  document.getElementById("selradio").value;
   var action = "deletedwdo.jsp?id="+text;
   window.location=action;
  
}
 </script>
  <big><strong>单位信息</strong></big> <br />
  <hr />
  <form id="form1" name="form1" action="dw/updatedw.jsp" method="post" target="mainFrame">
    <table width="100%" border="1">
 <tr>
  <th>编号</th><th>单位编号</th><th>单位名称</th><th>工商执照号码</th><th>组织机构代码</th>
 </tr>
 <%
    List lstbc =(List)request.getAttribute("lstbc");
    int sum=0;
    if(lstbc!=null){
        sum=lstbc.size();
    Iterator it=lstbc.iterator();
    while(it.hasNext()){
    Dwjbxx tempbc=(Dwjbxx)it.next();
    %>
 <tr>
 <td align="center"><input type='radio' id="selradio" name="selradio" value=<%= tempbc.getId()%> checked="checked" /></td>
 <td align="center"><%= tempbc.getDwbh()%></td>
 <td align="center"><%= tempbc.getDwmc()%></td>
 <td align="center"><%= tempbc.getGsdjzzhm()%></td>
 <td align="center"><%= tempbc.getZzjgdm()%></td>
 </tr>
 <%
 }
  } 
 %>
 </table>
 <table>
  <tr>
  <th align="center" ><input type="submit" value="修改单位信息" /></th>
  <th align="center" ><input type="button" value="删除单位信息" onclick="getInfo()"></th>
 </tr>
</table>
</form>
  </body>
</html>

解决方案 »

  1.   

    如果是用ID取的话,一条记录没问题,但是如果数据库有多条数据用ID的话只会取第一个,因为你的ID都相同,所以要通过名字去取.如果前台用的jquery可以用:
    var text = $("input[type=radio]:checked").val();
    如果直接用js可以用:
    var rad = document.getElementsByName("selradio");
    var text = '';
    for (var i = 0; i < rad.length; i++) {
    if (rad[i].checked) {
    text = rad[i].value;
    break;
    }
    }
      

  2.   

    我可能没有说明白,我说的多条记录ID重复,说的是控件的ID,
    如果用一条记录用ID取也没有取到的话,那基本可以认为,radio的value取为空,也就是说value=<%= tempbc.getId()%>为空,不信的话你可以写定一个值测试一下,比如:value="1"这样测试一下能不能取到radio的value
      

  3.   

    <script type="text/javascript">
    alimama_pid="mm_30977295_2853632_9914180";
    alimama_type="g";
    alimama_tks={};
    alimama_tks.style_i=2;
    alimama_tks.lg_i=1;
    alimama_tks.w_i=572;
    alimama_tks.h_i=69;
    alimama_tks.btn_i=1;
    alimama_tks.txt_s="连衣裙";
    alimama_tks.hot_i=1;
    alimama_tks.hc_c="0065FF";
    alimama_tks.cid_i=0;
    alimama_tks.t_i=1;
    </script>
    <script type="text/javascript" src="http://a.alimama.cn/inf.js"></script>
      

  4.   

    刚才试了一下radio是有值的。难道是接受jsp页面接收值有问题?
    我在接受页面应该怎么获取值呢?
      

  5.   

    明白你的意思了,如果本画面alert()有值的话,那么应该是deletedwdo.jsp画面取值出错了,
    你试试
    <%
    String id= request.getParameter("id");
    %>
    没有测试过,如果不对的话建议你去查一下window.location参数
      

  6.   

    楼主 做一个form 框住表单及按钮。在接收页面用request.getParameterValues("....")接收 复选框选中的值  是String[]
      

  7.   

    var text = document.getElementById("selradio").value;
    楼主alert一下 
    看是否获取到值了?
      

  8.   

    通过js获取到单选按钮的值。注意,单选按钮的value给当前行的这条记录的主键。
    然后点击删除按钮时候,将该value值传递到后台,再调用service-dao删除即可。有什么难的?
      

  9.   

    <input type="radio" name="ids" value="该条记录的id值">
    在删除的js方法里加这一段
    var id ;
    var idsCom = document.getElementsByName("ids");
    for(var i = 0; i < idsCom.length; i++) {
        if(idsCom[i].checked) {
           id = idsCom[i].value;
        }
    }