【发布时间】:2015-10-08 18:22:25
【问题描述】:
我需要你的帮助来回答一个简单的问题:
我有一个表单,我需要当用户在 a 中选择另一个值时,它会更改表单的所有值。 我的代码如下:
<form action="updatecost.jsp" method="post" onsubmit=" return check(this)">
<tr>
<td><i> choice cost</i></td>
<td align="left"><select name="oldcost">
<%
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb","user","pass");
Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery("select * FROM cost");
String id = "";
String year="";
String time="";
String cf="";
while (rs.next()) {
id = rs.getString("IdCost");
year=rs.getString("year");
time=rs.getString("time");
cf=rs.getString("CF");
%>
<option value="<%=id%>"><%=year%></option>
<%
}
%>
</select></td>
<br>
<td><i><font color="#660033"> actual year</font></i></td>
<br>
<input type="text" name="year" value="<%=year%>" size="25" /></td>
<br>
<td><i><font color="#660033">actual cost </font></i></td>
<br>
<input type="text" name="cost" value="<%=cost%>" size="25" /></td>
<br>
<td><i><font color="#660033"> cf </font></i></td>
<br>
<input type="text" name="cf" value="<%=cf%>" size="25" /></td>
<br>
<br>
【问题讨论】:
-
看起来当你在遍历结果集时会覆盖值 id/year/time/cf。我猜想只有最后一条记录的值会显示在页面上。如果您将记录存储到四个数组中,它可能会更好。最后,当有人从下拉列表中选择一年时,您可以通过查找存储在 id 数组中的一条记录的值来替换显示的值,例如 id[index]。
-
您希望 Ajax 命中一个 servlet 并吐出选项……而且最好将数据库代码放入 servlet(或者至少是您刚刚从 jsp 调用的类)中,而不是意大利面条式在jsps中。
标签: html mysql jsp select onchange