我需要你帮助解决一个简单的问题:
我有一个表单,我需要当用户在 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>
最佳答案
最好将所有结果保存到ArrayList<Cost> costs
中然后执行以下操作:
Javascript:
var ids = new Array(),
years = new Array(),
times = new Array(),
cfs = new Array();
<%
for(Cost c: costs) {
%>
ids.push("<%=c.getIdCost()%>");
years.push("<%=u.getYear()%>");
times.push("<%=u.getTime()%>");
cfs.push("<%=u.getCF()%>");
<%
}
%>
然后插入onchange="setCost(<%=id%>);"
函数进入select
并添加 JavaScript 函数
function setCost(id) {
for(var i = 0; i < ids.length; i++) {
if(ids[i] == id) {
document.getElementsByName("years")[0].value = years[i];
document.getElementsByName("cost")[0].value = costs[i];
document.getElementsByName("cf")[0].value = cfs[i];
}
}
}
关于html - 当<select>改变值时改变<input type>的值 MySql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33023241/