`
duoerbasilu
  • 浏览: 1484077 次
文章分类
社区版块
存档分类
最新评论

级联复选框的实现

 
阅读更多
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
  </head>
  	<script type="text/javascript">
  		var request = null;
		function createRequest(){
			if(window.XMLHttpRequest){
				//alert("firefox")
				request = new XMLHttpRequest();//FireFox/Opera浏览器支持的创建方式
			}else{
				//alert("ie");
				request = new ActiveXObject("Microsoft.XMLHTTP");//IE浏览器支持的创建方式
			}
			if(request == null){
				alert("Error creating request object!");
			}
		}
		function Change_Select(){		
				var firstid = document.getElementById('firstid').value;
				var url = "ShangpinCServlet?sid=" + escape(firstid);
				createRequest();
				request.open("GET", url, true);	//设置get方式		    
				request.onreadystatechange = callback;
	            request.send(null);  
			}
		function callback() {	
				if (request.readyState == 4) {
					if (request.status == 200) {
						parseMessage();
					}else{
						alert ("Not able to retrieve description" + req.statusText);
					}       
				}
			}
		function parseMessage() {  
				var xmlDoc = request.responseXML.documentElement; //返回xml
				var xSel = xmlDoc.getElementsByTagName('select');  
				var select_root = document.getElementById('secondid');	 
				select_root.options.length=0; //将原来选项清空,可以尝试隐藏,看效果   
				for(var i=0;i<xSel.length;i++){    
					var xValue = xSel[i].childNodes[0].firstChild.nodeValue;    
					var xText = xSel[i].childNodes[1].firstChild.nodeValue; 	
					var option = new Option(xText,xValue);
	   				try{
						//select_root.add(option);	//火狐不好用,仅ie可用;
						select_root[select_root.length]=option;		//ie和火狐都可以;
					}
					catch(e){		
					}    	
				} 
			}
  	</script>
  <body>
  商品信息分类:
   <select name="first" id="firstid" onChange="Change_Select()">
   <option value="0">-请选择-</option>
   	<c:forEach var="item" items="${firstMenu}">
   		<option value="${item.sbelong_id}">${item.sname }</option>
   	</c:forEach>
   </select>
    <select name="second" id="secondid">
   		<option value="0">-请选择-</option>
   </select>
  </body>
</html>



package com.jzh.dbutil;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DBUtil {

	private static String drivers="oracle.jdbc.driver.OracleDriver";
	private static String url="jdbc:oracle:thin:@localhost:1521:oracle";
	private static String user="scott";
	private static String password="tiger";


	public static Connection getConnection() throws SQLException {
		Connection conn = null;
		try {
			Class.forName(drivers);
			conn = DriverManager.getConnection(url, user, password);
		} catch (Exception e) {
			e.printStackTrace();
		}
		if (conn == null) {
			throw new SQLException("ajax.DBUtils: Cannot get connection.");
		}
		return conn;
	}

	public static void close(Connection conn) {
		if (conn == null)
			return;
		try {
			conn.close();
		} catch (SQLException e) {
			System.out.println("ajax.DBUtils: Cannot close connection.");
		}
	}

	public static void close(Statement stmt) {
		try {
			if (stmt != null) {
				stmt.close();
			}
		} catch (SQLException e) {
			System.out.println("ajax.DBUtils: Cannot close statement.");
		}

	}

	public static void close(ResultSet rs) {
		try {
			if (rs != null) {
				rs.close();
			}
		} catch (SQLException e) {
			System.out.println("ajax.DBUtils: Cannot close resultset.");
		}
	}


}

package com.jzh.control;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.jzh.bean.ShangPin;
import com.jzh.model.ShangPinDAO;

public class FirstMenu extends HttpServlet {

	

	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		ShangPinDAO spd=new ShangPinDAO();
		List<ShangPin> list=spd.getFirstClasses();
		request.setAttribute("firstMenu", list);
		request.getRequestDispatcher("/index.jsp").forward(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request,response);
	}

	
}

package com.jzh.control;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.jzh.bean.ShangPin;
import com.jzh.model.ShangPinDAO;

public class ShangpinCServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 设置返回的内容格式和编码方式
		response.setContentType("text/xml;charset=utf-8");
		response.setHeader("Cache-Control", "no-cache");
		String sid = request.getParameter("sid");
		ShangPinDAO sModel = new ShangPinDAO();
		ArrayList<ShangPin> result = sModel.getSecondClasses(sid);
		String xml_start = "<selects>";
		String xml_end = "</selects>";
		String xml = "";
		// 根据请求参数,设置返回的xml格式的字符串
		// 如果所属省份没有指定,返回未绑定
		for (int i = 0; i < result.size(); i++) {
			ShangPin s = result.get(i);
			xml += "<select><value>" + s.getSid() + "</value><text>"
					+ s.getSname() + "</text></select>";
		}
		String last_xml = xml_start + xml + xml_end;
		System.out.println(last_xml);
		PrintWriter out = response.getWriter();
		out.write(last_xml);

	}

}


package com.jzh.bean;

public class ShangPin {
	String sid;
	String sname;
	String sbelong_id;
	public String getSid() {
		return sid;
	}
	public void setSid(String sid) {
		this.sid = sid;
	}
	public String getSname() {
		return sname;
	}
	public void setSname(String sname) {
		this.sname = sname;
	}
	public String getSbelong_id() {
		return sbelong_id;
	}
	public void setSbelong_id(String sbelongId) {
		sbelong_id = sbelongId;
	}
}
package com.jzh.model;



import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import com.jzh.bean.ShangPin;
import com.jzh.dbutil.DBUtil;

public class ShangPinDAO {
	public ArrayList<ShangPin> getFirstClasses(){
		ArrayList<ShangPin> result = new ArrayList<ShangPin>();
		Connection conn = null;                 //声明Connection对象
        PreparedStatement pstmt = null;         //声明PreparedStatement对象
        ResultSet rs = null;                    //声明ResultSet对象
        try {
            conn = DBUtil.getConnection();     //获取数据库连接
            pstmt = conn.prepareStatement("select * from shangpin where sid<=3"); //根据sql创建PreparedStatement
            rs = pstmt.executeQuery();          //执行查询,返回结果集
            while(rs.next()) {
            	ShangPin temp = new ShangPin();
            	temp.setSid(rs.getString("sid"));
            	temp.setSname(rs.getString("sname"));
            	temp.setSbelong_id(rs.getString("belong_id"));
                result.add(temp);
            } 
        } catch (SQLException e) {
            System.out.println(e.toString());
        } finally {
            DBUtil.close(rs);         //关闭结果集
            DBUtil.close(pstmt);      //关闭PreparedStatement
            DBUtil.close(conn);       //关闭连接
        }
       
        return result;
	}
	public ArrayList<ShangPin> getSecondClasses(String sid){
		ArrayList<ShangPin> result = new ArrayList<ShangPin>();
		Connection conn = null;                 //声明Connection对象
        PreparedStatement pstmt = null;         //声明PreparedStatement对象
        ResultSet rs = null;                    //声明ResultSet对象
        try {
            conn = DBUtil.getConnection();     //获取数据库连接
            pstmt = conn.prepareStatement("select * from shangpin where belong_id=? and sid!=belong_id"); //根据sql创建PreparedStatement
            pstmt.setInt(1, Integer.valueOf(sid));
            rs = pstmt.executeQuery();          //执行查询,返回结果集
            while (rs.next()) {
            	ShangPin temp = new ShangPin();
            	temp.setSid(rs.getString("sid"));
            	temp.setSname(rs.getString("sname"));
            	temp.setSbelong_id(rs.getString("belong_id"));
                result.add(temp);
            } 
        } catch (SQLException e) {
            System.out.println(e.toString());
        } finally {
            DBUtil.close(rs);         //关闭结果集
            DBUtil.close(pstmt);      //关闭PreparedStatement
            DBUtil.close(conn);       //关闭连接
        }
        return result;
	}

}

数据库表为:







分享到:
评论

相关推荐

    QT QTreeWidget添加复选框

    1、给QTreeWidget添加复选框,实现部分选中,全部选中。 2、如果部分选中,父级复选框为对勾,则需设置风格。

    javascript复选框实现批量选择

    程序员在开发的时候,经常会遇到对查询列表中的记录进行批量操作的情况,实现倒是也不难,用javascript就行,但每次都要重新再写一遍,本人在工作中把它总结为一个模块,记录下来,以便再用。

    Axure RP9实现二级选择框联动 下拉多选框.rp

    Axure RP9实现二级选择框联动,利用全局变量、动态面板、赋值等原理,第一个选择框单选,第二个选择框多选

    bootstrap treeview 树形菜单带复选框及级联选择功能

    主要介绍了bootstrap treeview 树形菜单带复选框及级联选择功能,代码超简单,感兴趣的朋友跟随脚本之家小编一起学习吧

    js多级联动多选checkbox插件

    js多级联动多选checkbox插件

    extjs开发的权限系统(树形菜单复选框可级联选择)

    使用extjs+ibatis+spring+struts开发的权限系统 数据库mysql 数据库文件在开发文档目录下 动态树形菜单的加载 ,用户角色权限菜单的维护 jar文件删了一些,需要用的自己加包

    Bootstrap 4多选下拉框BsMultiSelect插件

    BsMultiSelect是一款基于Bootstrap 4的多选下拉框插件。该插件能够提供友好的多选功能,并提供一些情节模式和多种主题效果。

    Extjs3.4.0版本 多选下拉框效果支持多选/全选/全不选

    Extjs3.4.0版本 多选下拉框效果支持多选/全选/全不选, 附源码。 修复不能多选问题,代码仅供参考

    使用WPF做的一个树形的省市县级联菜单

    使用WPF做的一个树形的省市县级联菜单 非常好

    jQuery Easyui Treegrid实现显示checkbox功能

    通关类型判断显示包库/还是镜像(列有所不同,镜像共4列),勾选一个复选框,后面的复选框变为不可勾选状态。 下面是具体代码: 1,初始化treegrid,(其中有几个type列,是由后台人员提供的字段名,虽然我也不想弄...

    ExtJS 下拉多选框lovcombo

    最近一个新需求,要求用下拉多选框实现省份、城市的级联选择。

    javascript 多级checkbox选择效果

    今天总算把部门多选的效果整出来 见图: 先共享核心代码: 1:js脚本 代码如下: var treeHTML = “”; var checkList = new Array(); /*only init here*/ var barString = “└”;/*┝└*/ var degreeString = “ ...

    Tree_Demo.rar

    日常在Web项目开发时,经常会碰到树形架构数据的显示,从数据库中获取数据,并且显示成树形。为了方便,我们可以写一个... (3)、实现树节点的选择(单选、复选[级联选择])功能 (4)、支持大数据的一次性加载

    超实用的jQuery代码段

    2.12 如何选中页面上的所有复选框 2.13 禁用表单的回车键提交 2.14 禁用右键单击上下文菜单 2.15 IE下禁用文本选择功能 2.16 输入框获取焦点时文本高亮提示 2.17 实现多个输入框同步操作 2.18 在新窗口中打开外部...

    JavaScript网页特效范例宝典源码

    实例075 只有一个复选框时控制复选框的全选或反选 119 2.5 密码域 120 实例076 让您的密码域更安全 120 实例077 不提交表单自动检测密码域是否相同 121 2.6 表单应用 122 实例078 通过JavaScript控制表单的提交与...

Global site tag (gtag.js) - Google Analytics