我想基于 DropDown选择从数据库中检索数据。下面的代码正在工作,但BUT使用selectBox.options [selectBox.selectedIndex] .value只检索一个值。但是我的数据库表中有三列。我想根据下拉菜单中的选择来检索文本字段中的所有内容。
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@page import = "java.sql.*" %>
<%@page import = "java.sql.DriverManager.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript">
function populateCustomerId(){
var selectBox = document.getElementById('selectBox');
var selectedCustomerId = selectBox.options[selectBox.selectedIndex].value;
document.getElementById('customerId').value = selectedCustomerId;
}</script>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Select</title>
</head>
<body>
<%
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con= DriverManager.getConnection("jdbc:mysql://localhost:3306/ravi","root","root");
Statement st = con.createStatement();
ResultSet rs = null;
rs = st.executeQuery("select rid, rname, rmbl from r");
%>
<select id="selectBox" onchange="populateCustomerId();">
<%while(rs.next()){ %>
<option value="<%=rs.getString(2) %>"><%=rs.getString(1) %></option>
<%} %>
<%}
catch (Exception e){
e.printStackTrace();
} %>
</select>
<input id="customerId" type="text" value="" />
<input id="" type="text" value="" />
<input id="" type="text" value="" />
</td>
</body>
</html>
答案 0 :(得分:0)
在您的代码中完成
<select id="selectBox" onchange="populateCustomerId();">
<%while(rs.next()){ %>
<option value="<%=rs.getString(2) %>"><%=rs.getString(1) %></option>
<%} %>
<%}
catch (Exception e){
e.printStackTrace();
} %>
</select>
对于结果集中的每一行(while(rs.next())
您添加了一个选项,该选项的值是结果集中第二个字段的字符串(rs.getString(2))
以及结果集中第一个字段的显示值(rs.getString(1))
如果显示是问题所在,则只需更改
<%=rs.getString(1) %>
与
rid: <%=rs.getString("rid") %> rname: <%=rs.getString("rname") %> rmbl: <%=rs.getString("rmbl") %>