在一个jsp页面实现二级下拉框联动实时读取数据库数据

2016-02-19 19:28 398 1 收藏

今天图老师小编给大家介绍下在一个jsp页面实现二级下拉框联动实时读取数据库数据,平时喜欢在一个jsp页面实现二级下拉框联动实时读取数据库数据的朋友赶紧收藏起来吧!记得点赞哦~

【 tulaoshi.com - Web开发 】

  在一个jsp页面实现二级下拉框联动,实时读取数据库数据,这个方法非常使用,只需要修改很小的地方就可以使用。设计的文件,serch.jsp,main.js,bytetostr.js,

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  先讲一下main.js,这是javascript,其中注意修改jsp页面名称。

   

   function findObject(fName,initValue)...{
     var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
     xmlhttp.open("POST","searchmx.jsp?findObject="+fName+"&initValue="+initValue,false);//注意修改jsp页面
     xmlhttp.send();
     document.getElementById(fName).innerHTML=bytes2BSTR(xmlhttp.responsebody); //bytes2BSTR函数在bytetostr.js中
   }

   其次为bytetostr.js,这是vbscript,这个不需要修改任何内容,他的主要功能就是读取数据转换字符串用的。

   Function bytes2BSTR(vIn)
    dim i
    strReturn = ""
    For i = 1 To LenB(vIn)
    ThisCharCode = AscB(MidB(vIn,i,1))
    If ThisCharCode &H80 Then
    strReturn = strReturn & Chr(ThisCharCode)
    Else
    NextCharCode = AscB(MidB(vIn,i+1,1))
    strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
    i = i + 1
    End If
    Next
    bytes2BSTR = strReturn
  End Function
   

  接下来就是serch.jsp页面,只需要修改div中的id为你想要的名字,再将一开始的包更换一下,已经sql语句改下就可以了,有不明白的可以参与讨论

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

   

  %@ page contentType="text/html; charset=gb2312" language="java" import="com.sjth.zdsygl.vo.*,com.sjth.zdsygl.biz.*,java.util.*,com.sjth.zdsygl.jdbc.*,java.sql.ResultSet"%//导入相应的包
  %
  //这部分代码用于执行查询数据库,返回字符串
    if (request.getParameter("findObject")!=null)...{
      if (request.getParameter("findObject").equals("hy_dm"))...{
        DBConnect conn = null;
        ResultSet rs = null;
        try...{                   
          out.print("select name='hy_dm' onchange="javascript:findObject('hymx_dm',this.value)"");
          String sql = "select * from dm_hy group by left(hy_dm,7)";
          conn = new DBConnect();
          conn.setPstmt(sql);
          rs = conn.executeQuery(sql);
          while(rs.next())...{
            out.print("option value='"+rs.getString("hy_dm")+"'"+rs.getString("hy_mc")+"/option");
          }    
          out.print("/select");
       }
       catch (Exception e)...{                   
       }
       finally...{
            try...{
              if (rs != null)
                  rs.close();
              if (conn != null)
                  conn.close();
            }
            catch (Exception e)...{
              e.printStackTrace();
            }
       }
     }
      if (request.getParameter("findObject").equals("hymx_dm"))...{
        DBConnect conn = null;
        ResultSet rs = null;
        try...{                   
          out.print("select name='hymx_dm' ");
          String sql = null;
          if (request.getParameter("initValue").equals(""))...{
            sql = "select * from dm_hy";
          }
          else...{
            sql = "select * from dm_hy where hy_dm like '"+request.getParameter("initValue")+"%'";
          }
          conn = new DBConnect();
          conn.setPstmt(sql);
          rs = conn.executeQuery(sql);
          while(rs.next())...{
            out.print("option value='"+rs.getString("hy_dm")+"'"+rs.getString("hy_mc")+"/option");
          }    
          out.print("/select");
       }
       catch (Exception e)...{                   
       }
       finally...{
            try...{
              if (rs != null)
                  rs.close();
              if (conn != null)
                  conn.close();
            }
            catch (Exception e)...{
              e.printStackTrace();
            }
       }
     }
     return;
   }
  %
  html
  head
      link href="css/table.css" type="text/css" rel="stylesheet"
      script language=vbscript src="css/bytetostr.js"/script
      script language=javascript src="css/main.js"/script//导入两个js文件
  /head
  body
        div所属行业:/div
        div id="hy_dm"/div //用来显示返回的字符串
        div 所属明细行业:/div
        div id="hymx_dm"/div//用来显示返回的字符串
  /body
  /html
  script language="javascript"
         findObject("hy_dm","");
         findObject("hymx_dm","");//这两条是页面执行是调用
  /script
   

  欢迎大家讨论

   
  

来源:http://www.tulaoshi.com/n/20160219/1621076.html

延伸阅读
标签: Web开发
  最近终于有时间研究研究AJAX了.看了一些AJAX的介绍. 用ProtoType框架完成的一个下拉框(asp:DropDownList)联动的AJAX的小例子,和初学者分享一下. 代码下载 script language="javascript" type="text/javascript"  !-- function goCity() {        ...
  最近终于有时间研究研究AJAX了.看了一些AJAX的介绍. 用ProtoType框架完成的一个下拉框(asp:DropDownList)联动的AJAX的小例子,和初学者分享一下. 代码下载 <script language="javascript" type="text/javascript"  <!-- function goCity() {         var&nbs...
标签: ASP
  阿余经常写一些数据库相关的程序,当然离不开显示库中的数据了,说实话,做这样的程序真是无聊啊,所以,阿余就想写个函数,一个通用的数据库显示函数.要求如下: 1. 能显示指定的字段,当然,字段名和显示的文字可以不一样. 2. 能同时按多个字段进行查询,支持模糊和精确两种查询方式. 3. 有横向排列和纵向排列字段两种显示方式. 4. 能自动分页....
一直以来,ACCESS数据库中的申报数据在分公司与总公司之间传递,用EXCEL或DBASE、TXT甚至ACCESS等格式,我总觉得不太理想。最近看了一本书,不经意间发现了一个方法,使用ACCESS数据库生成申报数据与读入数据似乎简单了不少,特拿出来与大家分享。同时,也希望能得到更多的指点。 附上示例: Sub Mwrite() On Error GoTo thiserr ...
  本节介绍一个样例数据库,这个数据库在本书各个部分都可能用到。在学习将MySQL投入工作时,这个数据库为您提供了参考的例子。我们主要从前面描述过的两种情形来给出例子:   ■ 机构的秘书方案。我们需要一些比“机构”更为明确的信息,所以现在就来构造一个,它具有这样一些特性:它由为了研究美国历史这个共同目的而聚集在一起...

经验教程

569

收藏

39
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部