如何从 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 或重新设计页面。