javascript - 使用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>
请回复。提前致谢。
解决方案
您的代码的问题是重复 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。
推荐阅读
- amazon-s3 - 在整个 S3 存储桶上运行 AWS MediaConvert 作业
- python - Pyautogui:我必须手动移动鼠标才能让 pyautogui 点击
- android - 如何使用 Jsoup 提取图片链接?
- google-apps-script - 如何在新的 google appscript 界面上缩进代码?
- postgresql - 如何加快分区表中的选择查询?
- android - 如何将条形码添加到android中的html文件?
- python - 如何从 Python 索引 JSON 数组中的项目
- swiftui - VStack .leading 对齐
- javascript - 如何在不刷新整个页面的情况下更新树?
- javascript - 如何在 UI5 父应用程序中加载子组件,而不在 manifest.json 中定义它们?