如何从 resultList 中单独保存另一个 table
How to persist another table from a resultList singly
我已经试了一个星期了。我的会话 bean 中有一个工作方法,它工作得很好,并显示来自 MySQL table.
的用户列表
我想 select 一个使用单选输入类型的特定用户并将他的详细信息插入另一个 table。
我的问题是,每次我尝试时,输入 table 的是显示数据的第一个值,而不是我在单选输入类型上单击其 ID 的数据。我不知道出了什么问题。
<%
if (request.getParameter("submit) != null
&& request.getParameter("id") != null){
String id = request.getParameter("id");
String vote = request.getParameter("vote");
String name = request.getParameter("name");
String code = request.getParameter("code");
String msg = "";
try {
Result one = new Result(id, vote, name, code);
sl.castvote(one);
msg = "User successfuly added";
} catch (Exception e) {
msg ="error";
}
}
%>
<% List one = sl.viewAllContestants();
Iterator two = one.iterator();
<%
while(two.hasNext()) {
Contestants type = (Contestants) two.next();
%>
<form action="" method="post">
<input type="radio" name="id" class="form-control" value="<%=type.getId()%>" />
<input type="text" name="vote" value="1" hidden />
<input type="text" name="dept" value="<%=type.getDepartment() %>" hidden />
<input type="text" name="col" value="<%=type.getCollege() %>" hidden />
<input type="text" name="pos" value="<%=type.getPosition() %>" hidden />
<input type="text" name="type" value="<%=type.getElectionType()%>" hidden />
<input type="text" name="name" value="<%=type.getName() %>" hidden />
<input type="text" name="code" value="<%=type.getCode() %>" hidden />
<input type="submit" name="submit" />
</form>
<% } %>
阅读该 scriptlet 有点困难,我可能是错的,但我在这里看到的是您的结果页面类似于:
<form>
<radio name="id" value="some value" />
some other fields
<submit>
</form>
然后是另一种形式:
<form>
<radio name="id" value="some value" />
some other fields
<submit>
</form>
还有一个用于迭代器中的下一个。这基本上不是正确的方法。首先,您拥有不同形式的单选按钮的不同值。所以选择哪一个并不重要:) 此外,表格没有不同的名称,这实际上打破了 html 的工作方式。
因此,为了使它起作用(我相信它会起作用,尽管这不是一个好主意)您可以为不同的表单指定不同的名称。所以它们变成了 <form action="" method="post" name="firstForm">
等。在这里,您可以通过将其更改为:
来使提交仅提交它所在的表单
<button type="submit" form="firstForm" value="Submit">Submit</button>
因为根据您当前的设计,所有提交按钮都会提交第一个表单 ;)
- 为了给您一些启发,也许正确的方法是在页面中使用一个表单而不是多个表单。但在您的情况下,可能需要 javascript 或重新设计页面。
我已经试了一个星期了。我的会话 bean 中有一个工作方法,它工作得很好,并显示来自 MySQL table.
的用户列表我想 select 一个使用单选输入类型的特定用户并将他的详细信息插入另一个 table。
我的问题是,每次我尝试时,输入 table 的是显示数据的第一个值,而不是我在单选输入类型上单击其 ID 的数据。我不知道出了什么问题。
<%
if (request.getParameter("submit) != null
&& request.getParameter("id") != null){
String id = request.getParameter("id");
String vote = request.getParameter("vote");
String name = request.getParameter("name");
String code = request.getParameter("code");
String msg = "";
try {
Result one = new Result(id, vote, name, code);
sl.castvote(one);
msg = "User successfuly added";
} catch (Exception e) {
msg ="error";
}
}
%>
<% List one = sl.viewAllContestants();
Iterator two = one.iterator();
<%
while(two.hasNext()) {
Contestants type = (Contestants) two.next();
%>
<form action="" method="post">
<input type="radio" name="id" class="form-control" value="<%=type.getId()%>" />
<input type="text" name="vote" value="1" hidden />
<input type="text" name="dept" value="<%=type.getDepartment() %>" hidden />
<input type="text" name="col" value="<%=type.getCollege() %>" hidden />
<input type="text" name="pos" value="<%=type.getPosition() %>" hidden />
<input type="text" name="type" value="<%=type.getElectionType()%>" hidden />
<input type="text" name="name" value="<%=type.getName() %>" hidden />
<input type="text" name="code" value="<%=type.getCode() %>" hidden />
<input type="submit" name="submit" />
</form>
<% } %>
阅读该 scriptlet 有点困难,我可能是错的,但我在这里看到的是您的结果页面类似于:
<form>
<radio name="id" value="some value" />
some other fields
<submit>
</form>
然后是另一种形式:
<form>
<radio name="id" value="some value" />
some other fields
<submit>
</form>
还有一个用于迭代器中的下一个。这基本上不是正确的方法。首先,您拥有不同形式的单选按钮的不同值。所以选择哪一个并不重要:) 此外,表格没有不同的名称,这实际上打破了 html 的工作方式。
因此,为了使它起作用(我相信它会起作用,尽管这不是一个好主意)您可以为不同的表单指定不同的名称。所以它们变成了 <form action="" method="post" name="firstForm">
等。在这里,您可以通过将其更改为:
<button type="submit" form="firstForm" value="Submit">Submit</button>
因为根据您当前的设计,所有提交按钮都会提交第一个表单 ;)
- 为了给您一些启发,也许正确的方法是在页面中使用一个表单而不是多个表单。但在您的情况下,可能需要 javascript 或重新设计页面。