zoukankan      html  css  js  c++  java
  • 实现jsp页面二级下拉框联动,实时读取数据库数据

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

    先讲一下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.getElementByIdx_x(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语句改下就可以了,有不明白的可以参与讨论

    以下为引用的内容:

    <%@ 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>

  • 相关阅读:
    Java Output流写入包装问题
    SpringBoot项目单元测试不经过过滤器问题
    SpringSecurity集成启动报 In the composition of all global method configuration, no annotation support was actually activated 异常
    JWT jti和kid属性的说明
    Maven 排除依赖
    第五章 基因概念的发现
    第三章 孟德尔遗传的拓展
    第二章 孟德尔遗传
    第一章 引言
    GWAS全基因组关联分析
  • 原文地址:https://www.cnblogs.com/liuzhuqing/p/7480548.html
Copyright © 2011-2022 走看看