如何使用jsp将单选按钮和复选框的值插入到我的数据库中?

时间:2018-01-13 20:20:00

标签: java mysql jsp tomcat servlets

我的代码遇到了一些麻烦,我不知道如何继续。

我所拥有的是一个显示用户先前搜索过的推文列表的网页。

现在我想要的是用户可以提供一些有关搜索的信息,例如它是否有用以及在哪个区域(运动,购物,计算......)应该是。

我的代码是:

<table class="display dataTable no-footer" id="DataTables_Table_0">
                        <%
                            Class.forName("com.mysql.jdbc.Driver");
                            Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "test", "test");
                            Statement statement = connect.createStatement();
                            String query = "select * from cataluna_sin;";
                            ResultSet rs = statement.executeQuery(query);
                            while (rs.next()) {
                        %>
                        <tr>
                        <tr>
                            <td><b>tweet</b></td>
                            <td><b>retweet</b></td>
                            <td><b>usuario</b></td>
                            <td><b>Geolocalización</b></td>
                            <td><b>creador</b></td>
                            <td><b>¿Relevante?</b></td>
                            <td><b>Tipo de Delito</b></td>
                        </tr>
                        <%
                            while (rs.next()) {
                        %>
                        <tr>
                            <td><%=new String(rs.getString("tweet").getBytes("ISO-8859-1"), "UTF-8")%></td>
                            <td><%=rs.getInt("retweets")%></td>
                            <td><%=rs.getString("usuario")%></td>
                            <td><%=rs.getString("geolocalizacion")%></td>
                            <td><%=rs.getString("creador")%></td>
                            <td>

                                <form action=Update onsubmit=refreshpage();return false>
                                    <input type="radio" value="No" name="<%=rs.getLong("id")%>"
                                        checked>No<br> 
                                    <input type="radio" value="Si"
                                        name="<%=rs.getLong("id")%>">Si<br>
                            </td>
                            <td></td>
                            <td>
                            <input type="submit" value="clasificar"></td>
                            </form>
                        </tr>
                        <%
                            }
                            }
                        %>
                    </table>

我希望我按下提交按钮时更新数据库,但我不知道如何。

1 个答案:

答案 0 :(得分:0)

在你的代码中你有这个

<input type="radio" value="No" name="<%=rs.getLong("id")%>" checked>No<br> 
<input type="radio" value="Si" name="<%=rs.getLong("id")%>">Si<br>

将其更改为

<input type="radio" value="No" name="radio_<%=rs.getLong("id")%>" checked>No<br>
<input type="radio" value="Si" name="chk_<%=rs.getLong("id")%>">Si<br>

通过这种方式,您可以使用radio_idchk_id以不同的方式识别它们,否则在您的情况下,它们将具有相同的名称,您将无法识别它们的值。

<强>此外

您必须将表单发布到网址,并且网址应映射到servlet。

您的数据库代码应该在servlet中,而不是在jsp。

在这种情况下,也可以通过将表单提交到同一个网址来实现,但这不是一个好主意。

你有onsubmit形式的refreshPage javascript方法。您已通过ajax或通过页面回发将数据发布到servlet。

所以

  1. 创建一个servlet。将所有数据库代码放入其中。
  2. 从jsp
  3. 中删除db代码
  4. 从servlet加载数据
  5. 并保存只是将提交表单指向servlet(加载数据或另一个的相同servlet)
  6. 之后在servlet上成功将db save重定向回到此jsp