我有一个 jsp 文件,我在其中以表格的形式从数据库中检索数据。我的jsp如下:
<%
ResultSet rs1 = stmt.executeQuery("select * from book where category='Fiction'");
%>
<h1><font size="3">
<form name="f1" id="f1" method="post">
<table border="1">
<tr>
<th>Name of the Book</th>
<th>Author</th>
<th>ISBN</th>
<th>Price</th>
<th>Publication</th>
<th>Description</th>
</tr>
<%
while(rs1.next())
{
%>
<tr>
<td id="bname"><%= rs1.getString(1) %></td>
<td id="aname"><%= rs1.getString(2) %></td>
<td id="isbn"><%= rs1.getString(3) %></td>
<td id="price"><%= rs1.getString(4) %></td>
<td id="pname"><%= rs1.getString(5) %></td>
<td id="desc"><%= rs1.getString(7) %></td>
<td><input type="button" value="Add to Cart" onclick="cart()"></input></td>
</tr>
<%
}
%>
其输出将是行数。当我单击“添加到购物车”按钮时,它应该将单元格元素传递给 javascript 函数,从而通过 JS 函数传递给 servlet。
我在这里面临的问题是,因为每个 'td' 的 id 都是相同的,虽然我点击了他表的第二行,但只有第一行的元素被传递到 javascript 函数中。
这是我的javascript函数:
function cart()
{
var bname = window.document.getElementById("bname").textContent;
var isbn = window.document.getElementById("isbn").textContent;
var price = window.document.getElementById("price").textContent;
alert(bname);
alert(isbn);
alert(price);
}
上面的“警报”仅在我单击第二行中的按钮时才显示第一行的值。
我在网上尝试了很多替代方案,但无法解决问题。