当前位置: 首页 > 图文教程 > 数据库 > MYSQL > 实现jsp页面二级下拉框联动,实时读取数据库数据

MYSQL
mysql 常用数据库语句 小练习
MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)问题的解决
mysql 字符集的系统变量说明
MySQL 在触发器里中断记录的插入或更新?
将MySQL数据库移植为PostgreSQL
mysql 操作总结 INSERT和REPLACE
linux mysql忘记密码的多种解决或Access denied for user ''root''@''localhost''
运用mysqldump 工具时需要注意的问题
mysql 优化日记
MySQL 字符串函数大全
mysql 截取指定的两个字符串之间的内容
MySQL 备份还原数据库批处理
mysql 数据库中my.ini的优化 2G内存针对站多 抗压型的设置
Mysql 数字类型转换函数
mysql 动态生成测试数据
mysql 显示SQL语句执行时间的代码
mysql 设置查询缓存
MYSQL explain 执行计划
MySQL 有输入输出参数的存储过程实例
巧用mysql提示符prompt清晰管理数据库的方法

MYSQL 中的 实现jsp页面二级下拉框联动,实时读取数据库数据


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 69 ::
收藏到网摘: n/a

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

以下为引用的内容:

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

欢迎大家讨论