下拉框联动[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 d80 的 blog

下拉框联动有两个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]);
  }
 }
}

本文关键:下拉框联动
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top