首页 > 解决方案 > 使用javascript将值从动态表传递给另一个jsp

问题描述

我正在研究需要使用数据库显示动态表的项目。能够显示表格,但在将值传递到另一个页面以编辑表格时遇到问题。我只能通过表格的第一行。我正在使用 javascript 来传递值。请帮我。这是我到目前为止所尝试的

<table id='tbl2' border="2">
       <thead>
        <tr style="font-weight: bold;"><td colspan="7" align="center" >Team Shift Roster</td></tr>
        <tr style="font-weight: bold;"><td>Date/Shift</td> <td>06:00AM - 02:00PM</td> <td>02:00PM - 10:00PM</td> <td>10:00PM - 06:00AM</td> <td width="130px">Weekly Off</td> <td width="130px">General Shift</td> <td></td></tr>
         </thead>
         <tbody>

            <%
          if(rs != null){ 
            while(rs.next()){
                %>
             <tr>
                <td style="font-weight: bold;" >
                   <input style="border:0px; width:100px" name="dd" id="dd" value="<%=rs.getString(1)%>" readonly /></td>
                <td><input style="border:0px; width:130px" type="text"  value="<%=rs.getString(2)%>" name="one" id="one"/></td>
                <td><input style="border:0px; width:130px" type="text"  value="<%=rs.getString(3)%>" name="two" id="two"/></td>
                <td><input style="border:0px; width:130px" type="text"  value="<%=rs.getString(4)%>" name="thr" id="thr"/></td>
                <td><input style="border:0px; width:90px" type="text"  value="<%=rs.getString(5)%>" name="fr" id="fr"/></td>
                <td><input style="border:0px; width:100px" type="text"  value="<%=rs.getString(6)%>" name="fve" id="fve"/></td>
                <td><input style="border:0px; width:90px" type="button" onclick="myFun()" value="Update"></td>
                </tr>

         <%     } }
              else { out.println("No Record Found"); }   %>
         </tbody>
    </table>

这是我的 Jscript 函数

<script>
    function myFun(){
      var v1 = document.getElementById("one").value; 
      var v2 = document.getElementById("two").value; 
      var v3 = document.getElementById("thr").value; 
      var v4 = document.getElementById("fr").value; 
      var v5 = document.getElementById("fve").value; 
      var dd = document.getElementById("dd").value; 
      window.location.href='DCM_UsrShiftUpdt.jsp?v1='+v1+'&v2='+v2+'&v3='+v3+'&v4='+v4+'&v5='+v5+'&dd='+dd;

}
</script>

请回复。提前致谢。

标签: javascriptjsp

解决方案


您的代码的问题是重复 ID,使用动态 ID,让我们采用行 ID:

if(rs != null){
    int rowId = 1;
    while(rs.next()){ %>
   <tr>
       <td style="font-weight: bold;"><input style="border:0px; width:100px" name="dd" id="dd<%=rowId%>" value="<%=rs.getString(1)%>" readonly /></td>
       <td><input style="border:0px; width:130px" type="text"  value="<%=rs.getString(2)%>" name="one" id="one<%=rowId%>"/></td>
        .... so on for other <td>
       <td><input style="border:0px; width:90px" type="button" onclick="myFun(<%=rowId%>)" value="Update"></td>
  </tr>
<%
rowId++;
  }
}

JS

function myFun(rowId){
    var v1 = document.getElementById("one"+rowId).value; 
    //so on for the rest
}

PS 避免使用 JSP scriptlet 而使用 JSTL。


推荐阅读