这两天看了很多人的帖子和相应解释,我还是看了一头雾水,自己的代码一直没有调通,很着急。我想实现:勾选数据,点击删除按钮,跳转到delete页面,完成删除,返回数据list页。但是运行结果:传递到delete.jsp的值是空的,无法执行删除。list.jsp部分代码<form name="form1" method="post" action="delete.jsp" onsubmit="return checkData();">
<input type="button" name="insert" value="新增" onclick="window.location='insert.jsp'"">
<input type="button" name="update" value="修改" onclick="location.href='update.jsp'">
<input type="button" name="delete" value="删除" onclick="location.href='delete.jsp'">
<%
while (rs.next()) {
i++ ;
// 进行循环打印,打印出所有的内容,以表格形式
// 从数据库中取出内容
String sampleid  = rs.getString(1) ;
String family    = rs.getString(2) ;
String familycn  = rs.getString(3) ;
String species   = rs.getString(4) ;
String speciescn = rs.getString(5) ;
String variable  = rs.getString(6) ; }
%>
<tr>
<td><input type="checkbox" name="sampleid" value="<%=rs.getString(1)%>"></td>
<td><%=sampleid%></td>
<td><%=family%></td>
<td><%=familycn%></td>
<td><%=species%></td>
<td><%=speciescn%></td>
<td><%=variable%></td>
</tr>
</form>
delete.jsp代码:<%
request.setCharacterEncoding("gbk");// 判断userid是否为空,不为空则表明用户已登录
if (session.getAttribute("userid") != null) {
// 用户已登录
// 接收复选框sampleid传过来的数组
String[] sampleid = request.getParameterValues("sampleid") ;
String   sampleidAll = ""; // 判断sampleid数据是否为空,有数据则处理数据
if (sampleid!=null && sampleid.length!=0) {
for (int i=0; i<sampleid.length; i++) {
sampleidAll = sampleidAll + sampleid[i] + ","; // 转化为字符串,添加逗号
}
sampleidAll = sampleidAll.substring (0, sampleidAll.length()-1); String sql = "DELETE FROM taxonommy WHERE sampleid=?" ;
flag = false ; try {
Class.forName (DBDRIVER) ;
conn = DriverManager.getConnection (DBURL, DBUSER, DBPASS) ;
pstmt = conn.prepareStatement (sql) ;
// 设置删除条件
pstmt.setString(1, sampleidAll) ;
pstmt.executeUpdate() ; pstmt.close() ;
conn.close() ;
flag = true ;
} catch (Exception e) {}
response.setHeader("refresh", "2;URL=list.jsp") ;
if (flag) {
%>
数据删除成功,两秒后跳转到数据管理列表页! <br>
如果没有跳转,请按<a href="list.jsp">这里</a>!
<%
} else {
%>
数据删除失败,两秒后跳转到数据管理列表页!<br>
如果没有跳转,请按<a href="list.jsp">这里</a>!
<%
}
%>
<%
} // 判断sampleid数组是否为空的if语句
else { // sampleid数据为空,则提示并跳转数据管理列表
%>
数据为空,无法删除!<br>
请按<a href="list.jsp">这里</a>!
<%
}

} // 判断session是否为空的if语句
else { 
// session为空,表明用户未登录,提示用户登录,并跳转登录
response.setHeader("refresh", "10;URL=login.html") ;
%>
请您先登录!<br>
两秒后自动跳转到登录窗口!<br>
如果没有跳转,请按<a href="login.html">这里</a>!<br>
<%
}
%>

解决方案 »

  1.   

    我查看了很多人的问题,但是解决方法都是利用form表单,action=“delete.jsp”,使用submit完成跳转。但是我有新增和修改按钮,尤其是修改按钮,修改按钮也需要跳转,就不可能把form的action只等于delete.jsp。现在修改按钮的页面也没调成功,很着急,请帮帮忙。
      

  2.   

    你现在已经有三个按钮,并且每个按钮都有onclick事件。这样就非常简单了。
      <input type="button" name="insert" value="新增" onclick="hrefInsert();">
        <input type="button" name="update" value="修改" onclick="hrefUpdate();">
        <input type="button" name="delete" value="删除" onclick="hrefDelete();">function hrefInsert(){
      document.form1.action='insert.jsp';
      document.form1.onsubmit();
    }
    function hrefUpdate(){
      document.form1.action='update.jsp';
    }
    function hrefDelete(){
      document.form1.action='delete.jsp';
    document.form1.onsubmit();
    }
    这不就OK了么?
      

  3.   

    第一 你delete.jsp中的值是空的 那么你何不换种方式来处理呢
    <script >
    //得到所有选中记录的ID(行标识)function doDelete(){
       var box= document.getElementsByName("你checkbox的名字");
       var value="";
       for (var i=0;i<box.length;i++ ){
         if(box[i].checked){ //判断复选框是否选中
        value=value+box[i].value + ","; //值的拼凑 .. 具体处理看你的需要,
      }
       }
       alert(value);//输出你选中的那些复选框的值
       document.froms[0].action="delete.jsp?id="+value;
    }
    </script> 这样在delete.jsp中你request.getParameter("id");再看看有值否?
      

  4.   

    兄弟,我试了,但是还是显示为空。是不是delete.jsp这里的问题String[] sampleid = request.getParameterValues("sampleid") ;
    而form的checkbox是这样的格式<td><input type="checkbox" name="sampleid" value="<%=rs.getString(1)%>"></td>
      

  5.   

    跳转时没有传值过来,取值肯定为空呀,这里很有可能是你有多个jsp页面连到该jsp页面上,取得不对,仔细分析下,无外乎传值逻辑这块没搞清楚
      

  6.   

    先分析下逻辑,问题出在哪个环节,建议将java代码和JSP分析,这样也好调试,放在一起不好修改
      

  7.   

    上面那个兄弟给我的就是用JS来传值。但是我对JS不熟悉,所以没调试成功。现在我针对一个删除按钮,使用form提交,action设置为delete.jsp。但是我依然觉得需要实现多按钮的跳转问题。
      

  8.   

    我现在实现了传统的方法:
    用form提交数据。但是form只能实现一个页面的提交,所以我在想用
    <a href="03.jsp?hobby=<%=hobby%>&work=<%=work%>">提交爱好</a>
    来实现。