Как сохранить другую таблицу из списка результатов в одиночку - PullRequest
0 голосов
/ 02 мая 2018

Я пытался это в течение одной недели. У меня есть рабочий метод в моем сессионном компоненте, который работает очень хорошо и отображает список пользователей из таблицы MySQL.

Я хочу выбрать конкретного пользователя, используя тип радиовхода, и вставить его данные в другую таблицу.

Моя проблема в том, что каждый раз, когда я пытаюсь, это первое отображаемое значение данных, которое входит в таблицу, а не данные, для которых я щелкнул его идентификатор в типе радиовхода. Я не знаю, что происходит не так.

    <%

    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>

         <% } %>    

1 Ответ

0 голосов
/ 02 мая 2018

Довольно сложно прочитать этот скриптлет, и я могу ошибаться, но здесь я вижу, что на вашей странице результатов есть что-то вроде:

<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 или редизайн страницы.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...