近日有幸玩了一把列表连动,
代码如下:
main.htm
test ajax lianDong box
请选择A:10
11
12
13
14
15
16
请选择B:
请选择C:
请选择D:
请选择E:
response.jsp
String id = request.getParameter("id");//record id
String flag = request.getParameter("flag");//level flag
Connection conn = null;
ResultSet rs = null;
PreparedStatement ps = null;
StringBuffer sb = new StringBuffer("");//id
StringBuffer sb1 = new StringBuffer("");//name
String str1=null;//id
String str2=null;//name
String sId = "";
String sName = "";
try {
Class.forName("oracle.jdbc.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:test";
conn = DriverManager.getConnection(url, "gyh", "gyh");
if (id != null) {
ps = conn.prepareStatement("select id,name from t_tree where p_id='"+ id + "'");
rs = ps.executeQuery();
while (rs.next()) {
sId = rs.getString("id");
sName = rs.getString("name");
sb.append( sId + ",");
sb1.append(sName+",");
}
str1=sb.substring(0,sb.length()-1);//id
str2=sb1.substring(0,sb1.length()-1);//name
}
//返回拼出来的字符串,以供客户端解析
out.print(str1+"@"+str2+"@"+flag+"@");
} catch (Exception ex) {
ex.printStackTrace();
out.println("except:" + ex.getMessage());
} finally {
try {
rs.close();
ps.close();
if (conn != null)
conn.close();
} catch (Exception e) {
rs = null;
ps = null;
conn = null;
e.printStackTrace();
}
}
%>
前台页基于javascript和xmlrequest对象,后台是一个简单的响应页,返回字符串值。这样就实现了不刷新页面便可更新列表值的方法,果然不错。
[@more@]