我的代码遇到了一些麻烦,我不知道如何继续。
我所拥有的是一个显示用户先前搜索过的推文列表的网页。
现在我想要的是用户可以提供一些有关搜索的信息,例如它是否有用以及在哪个区域(运动,购物,计算......)应该是。
我的代码是:
<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>
我希望我按下提交按钮时更新数据库,但我不知道如何。
答案 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_id
和chk_id
以不同的方式识别它们,否则在您的情况下,它们将具有相同的名称,您将无法识别它们的值。
<强>此外强>
您必须将表单发布到网址,并且网址应映射到servlet。
您的数据库代码应该在servlet中,而不是在jsp。
中在这种情况下,也可以通过将表单提交到同一个网址来实现,但这不是一个好主意。
你有onsubmit形式的refreshPage javascript方法。您已通过ajax或通过页面回发将数据发布到servlet。
所以