ITPub博客

首页 > 应用开发 > IT综合 > 下拉框联动 (转)

下拉框联动 (转)

原创 IT综合 作者:gugu99 时间:2007-12-05 09:43:57 0 删除 编辑
下拉框联动 (转)[@more@]

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

//from chinaquest

function clearList(ctrl){

 if (document.all) {

 for(;ctrl.options.length>0;)

 ctrl.options.remove(ctrl.options.length-1);

 }else{

 for(;ctrl.options.length>0;)

 ctrl.options[ctrl.options.length-1] = null;

 }
}

-------------------------------------------------------------------------------------
selecttest.jsp 进行页面使用




无标题文档




RM method="post">
 
 


 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10748419/viewspace-988543/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    3122
  • 访问量
    2226175