下拉框联动有两个java类,两个jsp页面,和一个js组成。
multiselect.java
该类用于生成实现联动需要的array数组
package select;
import java.util.*;
import java.sql.*;
import java.io.*;
public class multiselect {
/**
*产生javascript中用于联动的array代码
*以省市为例
*一般为了javascript程序的方便,建议输出格式为:
*subcat1[subcat1.length] = new array("江阴","12.10","12");
*其中"江阴"的值为"12.10","12"对应江苏省,越大的范围的值越往后
*subcat1[subcat1.length] = new array("常州","12.11","12");
**/
public static string getarray(string name, string sql) throws java.sql.sqlexception {
connection conn=null;
try {
class.forname("com.microsoft.jdbc.sqlserver.sqlserverdriver");
conn =
drivermanager.getconnection("jdbc:microsoft:sqlserver://localhost:1433;databasename=test",
"test", "test");
} catch (java.lang.classnotfoundexception e) {
system.err.print("classnotfoundexception: " + e.getmessage());
}
statement stmt = conn.createstatement();
resultset rs=stmt.executequery(sql);
stringbuffer sb = new stringbuffer();
while(rs.next()){
sb.append(name + "[" + name + ".length] = new array(" +
getstring(rs.getstring(0),rs.getstring(1),rs.getstring(2)) + ");\n");
}
return sb.tostring();
}
private static string getstring(string s1,string s2,string s3) {
string temp = "\"" + s1 + "\",\""+s2+"\",\""+s3+"\"";
return temp;
}
}
--------------------------------------------------------------------------------
selectjs 该类主要是用来生成sql语句。
package select;
public class selectjs {
/**
* 写出sql,调用
* @param name 数组名称
* @return
* @throws java.sql.sqlexception
*/
public static string getproducts(string name) throws java.sql.sqlexception {
return multiselect.getarray(name,
"select describe,code,fcode from testone "
);
}
}
---------------------------------------------------------------------------------
citys.jsp主要是用来得到array数组
<%@ page contenttype="text/html;charset=gb2312" %>
<%@ page import="select.*"%>
var citys = new array();
<%=selectjs.getdealercity("citys")%>
-----------------------------------------------------------------------------------
select.js 主要是用来显示下拉框中的数据
function clearselect(aa){
clearlist(aa);
aa.options[aa.length] = new option("没有回答", "");
}
//use "" to clear all:(值的索引为1)
//aa为被联动的select,
//locationid为主联动值,
//arr为用于生成的array,
//index1为array中用于比较主联动值的索引
function changelocation1(aa,locationid,arr,index1){
clearselect(aa);
var i;
for (i=0;i < arr.length; i++){
if (arr[i][index1] == locationid ){
aa.options[aa.length] = new option(arr[i][0], arr[i][1]);
}
}
}