【发布时间】:2016-04-05 20:31:43
【问题描述】:
在这段代码中,我将 MySQL 数据库的值放入数据库表中行的 String array(list[count]) 和 count=number 中。当我应用for-loop 在javascript 的下拉列表中打印这些值时,使用j 变量,编译器无法识别j。我无法理解为什么。请帮帮我。
<%@page import="java.sql.DriverManager"%>
<%@page import="com.mysql.jdbc.Driver"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.ResultSet"%>
<html>
<body>
<br/>
<br/>
<div align="center"><h1>Task Assignment</h1></div>
<form name="taskassignment"><div align="center"><table>
<tr><td><font size="5">Person(s)</font></td><td><select id="person"></select></td></tr>
<tr><td><font size="5">Task(s)</font></td><td><select name="task"></select></td></tr>
<tr><td></td><td><input type="submit" value="Assign" name="assigntask"/></td></tr></div></table></form>
<%
DriverManager.registerDriver(new Driver());
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/BI","root","mayur");
String query = "select name from records";
PreparedStatement stmt = conn.prepareStatement(query);
ResultSet rs = stmt.executeQuery();
int count =0;
while(rs.next())
{
count++;
}
String[] list = new String[count];
int i=0;
rs.beforeFirst();
while(rs.next())
{
list[i] = rs.getString(1);
out.println(list[i]);
i++;
}
%>
<script>
function myFunction()
{
for(var j=1;j<=<%=list.length%>;j++)
{
var x = document.getElementById("person");
var opt = document.createElement("option");
opt.text = '<%=list[j]%>';
opt.value = '<%=list[j]%>';
x.add(opt);
}
}
window.onload = myFunction;
</script>
</body>
</html>
【问题讨论】:
-
您正在混合客户端和服务器端代码。
-
你对服务器端代码和客户端代码感到困惑...... j是在javascript中定义的,但是页面已经无法加载,因为服务器端不知道j是什么
-
先生,请建议我如何从数据库中检索值并将它们放入脚本的下拉列表中???
标签: javascript java mysql jsp for-loop