如何从数据库中选择表的特定行?

时间:2018-04-25 05:55:51

标签: java jsp

我的html中有此脚本,如果状态为0,则可以点击“evaluate”按钮,否则按钮将为hidden

$('#table-content').append使用scriplet中的while循环从我的数据库中检索所有数据。

我正试图从用户点击的表中获取哪一行,但我继续从表中获取最后一行。

<%
    while (records.next()){
            String regisID = records.getString("registrationID");
            String courseName = records.getString("courseName");
            String profName = records.getString("professorName");
            String courseTime = records.getString("courseTime");
            String SID = records.getString("SID");
            int status = records.getInt("status");
    %>
        var num = <%= status %>;
        var btn = "";
        if(num===0)
            btn = "<td style='width: 10%;'><button type='button' id='evaluateBtn' class='btn btn-block btn-primary'>Evaluate</button></td>";
        else
            btn = "<td style='width: 10%;'><button type='button' class='btn btn-block btn-success disabled'>Done</button></td>";

        $('#table-content').append(
                "<tr>"+
                "<td style='width: 20%;'><%= courseName %></td>"+
                "<td style='width: 25%;'><%= profName %></td>"+
                "<td style='width: 20%;'> <%= courseTime %></td>"+
                btn+
                "</tr>"
        );

        $("#evaluateBtn").click(function() {
            var form = document.createElement("form");
            document.body.appendChild(form);
            $(form).append("<input type='hidden' name='registrationID' value='<%= regisID %>'/>");
            $(form).append("<input type='hidden' name='courseName' value='<%= courseName %>'/>");
            $(form).append("<input type='hidden' name='SID' value='<%= SID %>'/>");
            form.action="http://localhost:8080/NewDesignV1/evaluate.action";
            form.method="post";
            form.submit();
            $(form).remove();
        });
        <%} %>

如果点击evaluate按钮,我想要检索主题教授时间。请注意,我使用while循环循环表行,这就是为什么如果我点击evaluate按钮,我会继续获取最后一行的详细信息

See attached image

1 个答案:

答案 0 :(得分:0)

根据我的理解,您希望为单击的按钮选择相应的行。正如你所说,你正在从服务器接收记录并通过JQuery迭代。据我所知,ID元素在Document中应该是Unique,并且在循环中创建了多个ID元素。您可以使用Class而不是ID。要选择当前表行,您可以使用以下代码。 这只是示例:

<table>
 <tr>
   <td class="one">A</td>
   <td style='width: 20%;' class="courseName">ABc</td>
    <td><button class="the-btn">
     Click
    </button></td>
 </tr>
 <tr>
   <td class="one">b</td>    
   <td style='width: 20%;' class="courseName">DEF</td>
   <td><button class="the-btn">
     Click
   </button></td>
 </tr>

和JS:

   $(document).ready(function(){
      $('.the-btn').on('click',function(){
       alert($(this).closest('tr').find('.courseName').text());
   });
});

这是Fiddle