如题,请各位多多帮忙
解决方案 »
- 一个初学JSP的困惑
- mysql 数据库 表中有一列名 “日期” 格式为“2008-10-01” 如何检索出为“星期” 对对应的星期几
- window player问题
- 一条SQL-SERVER语句可不可以 向两张表的插入数据 如果可以怎么做 我是用JSP Bean+Dao实现类做的,急求跪求!!!!
- myeclipse编写hibernater的步骤求教
- 高手请留步~~~jsp页面跳转问题
- 如何停止当前页面程序的运行;?????????????
- 那位用jspsmartupload控件作下载,帮忙中文问题!多谢 急!
- 脚本发生错误 什么情况
- jdbc连接数据库的问题,解决了给分(100)
- 向前辈们求助,我是菜鸟,关于连接数据库取值的问题。
- com.opensymphony.webwork.lifecycle.RequestLifecycleFilter这个类找不到,请帮忙!
{
var url = 'Options.jsp';
var pars = 'fl=' + a ;
var myAjax = new Ajax.Updater(
'option',
url,
{
method: 'get',
parameters: pars
});
$("submit1").disabled=false;//提交可用
} <script>
document.write("<div id ='load'>正在加载....</div>");
</script>
<script language="JavaScript" src="../MzTreeView10/MzTreeView10.js"></script>
<script language="JavaScript" src="../date/CalendarSelector.js"></script>
<script language="JavaScript" src="../js/myJSFrame.js"></script>
<script language="JavaScript" src="../js/prototype.js"></script>
<script language="JavaScript" src="../js/deptsearch.js"></script>
<script language="JavaScript" src="../js/dragdrop.js"></script>
<link href="../css/tree.css" type="text/css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="../css/ajaxwaiting.css">
<link rel="stylesheet" type="text/css" href="../css/css.css">
<style type="text/css">
table.t1{
border:1px solid #cad9ea;
color:#666;
vertical-align: top;
text-align: right;
}
table.t1 th {
background-image: url(../Image/th_bg1.gif);
background-repeat::repeat-x;
height:30px;
vertical-align: middle;
text-align: center;
}
table.t1 td,table.t1 th{
border:1px solid #cad9ea;
padding:0 1em 0;
}
table.t1 tr.a1{
background-color:#f5fafe;
}
</style>
</head>
<body>
<script language='JScript'>
<!--
var strHtml=new StringBuffer();
strHtml.append("<div id=\"win\" style=\"height:240;width:200;overflow:auto;background:#FFFFFF;\">");
var s = new MzTreeView("s");
s.setIconPath("../TreeView/");
s.wordLine = false;
s.nodes["-1_1"] = "text:单位信息;method:shows(0);";
<%
String sql = "select dwdm,case substring(dwdm,1,(len(dwdm)-2)) when '' then '1' else substring(dwdm,1,(len(dwdm)-2)) end p_dwdm, dwmc from dw$ order by str(dwdm)";
sqlbean.executeQuery(sql);
while(sqlbean.next()){
%>
//父id,子id
s.nodes["<%=sqlbean.getData(2).trim()%>_<%=sqlbean.getData(1).trim()%>"] = 'text:<%=sqlbean.getData(3).trim()%>;method:shows("<%=sqlbean.getData(1).trim()%>")';
<%
}
%>
strHtml.append(s.toString());
function shows(id){
$('deptid').value=id;
}
strHtml.append("</div>");
strHtml.append("<table width=\"100%\" border=\"0\"><tr>");
strHtml.append("<td>请选择收入日期区间<input type=hidden name=\"deptid\" id=\"deptid\" value=\"0\"></td></tr>");
strHtml.append("<tr><td>从<INPUT id=Date1 style=\"WIDTH: 70px\" readOnly maxLength=10 name=b_date value=\"2006-10-31\">");
strHtml.append("<IMG onclick=\"setday(this,Date1,2000,2010,'yyyy-MM-dd')\" src=\"../date/button.gif\" align=absMiddle></td></tr>");
strHtml.append("<tr><td>到<INPUT id=Date2 style=\"WIDTH: 70px\" readOnly maxLength=10 name=e_date value=\"2006-10-31\">");
strHtml.append("<IMG onclick=\"setday(this,Date2,2000,2010,'yyyy-MM-dd')\" src=\"../date/button.gif\" align=absMiddle></td></tr>");
strHtml.append("<tr><td><label>");
strHtml.append("<input type=\"checkbox\" name=\"checkbox\" id=\"check1\" value=\"checkbox\" onclick=\"d_check(this.checked)\"/>");
strHtml.append("按收入属性统计</label></td></tr><tr><td><label>");
strHtml.append("<select name=\"example\" size=\"1\" id=\"id1\" disabled onChange=\"ChangeOptions(this.value)\">");
strHtml.append("<option value=\"0\">未分类</option><option value=\"1\">管理方式</option><option value=\"2\">收入性质</option>");
strHtml.append("</select></label></td></tr>");
strHtml.append("<tr><td><label>选择属性</label></td></tr> <tr><td><div id=\"option\">");
strHtml.append("<select name=\"stage2\" id=\"id2\" size=\"1\" disabled><option value=\"0\">未分类</option>");
strHtml.append("</select></div></td>");
strHtml.append("</tr><tr><td><label><input type=\"checkbox\" name=\"type\" id=\"stype\" value=\"0\" />");
strHtml.append("包含未审核收入</label></td></tr><tr>");
strHtml.append("<td height=\"33\" align=\"center\" valign=\"middle\"><label>");
strHtml.append("<input type=\"button\" name=\"Submit\" id =\"submit1\" value=\"提交\" onclick=\"checkDate()\"/>");
strHtml.append("<input type=\"button\" name=\"Submit2\" value=\"返回\" onclick=\"history.back(-1);\" />");
strHtml.append("</label></td></tr></table>");
function initialize(){
var b = new xWin("2",200,500,0,0,"查询界面",strHtml.toString());
}
window.onload = initialize;
//-->
</script>
options.jsp<%
String fl=request.getParameter("fl");
String strTable="";
if(!"0".equalsIgnoreCase(fl)){
if("1".equals(fl)){
strTable="jc_zjglfs";
}else if("2".equals(fl)){
strTable="jc_sfxz";
}else if("3".equals(fl)){
strTable="jc_sf_type";
}
ResultSet rs =sqlbean.executeQuery(" select * from "+strTable+" ");
%>
<select name="srxz" id="id2" size="1">
<%
while(rs.next()){
%>
<option value="<%=rs.getString(1) %>"><%=rs.getString(2) %></option>
<%
}
%>
</select>
<%
}else{
%>
<select name="srxz" id="id2" size="1">
<option value="0">未分类</option>
</select>
<%} %>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>多级联动菜单</title><script type="text/javascript">
var xmlHttp; //用于保存XMLHttpRequest对象的全局变量
var targetSelId; //用于保存要更新选项的列表id
var selArray; //用于保存级联菜单id的数组//用于创建XMLHttpRequest对象
function createXmlHttp() {
//根据window.XMLHttpRequest对象是否存在使用不同的创建方式
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest(); //FireFox、Opera等浏览器支持的创建方式
} else {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");//IE浏览器支持的创建方式
}
}//获取列表选项的调用函数
function buildSelect(selectedId, targetId) {
if (selectedId == "") { //selectedId为空串表示选中了默认项
clearSubSel(targetId); //清除目标列表及下级列表中的选项
return; //直接结束函数调用,不必向服务器请求信息
}
targetSelId = targetId; //将传入的目标列表id赋值给targetSelId变量
createXmlHttp(); //创建XmlHttpRequest对象
xmlHttp.onreadystatechange = buildSelectCallBack; //设置回调函数
xmlHttp.open("GET", "select_menu.jsp?selectedId=" + selectedId, true);
xmlHttp.send(null);
}//获取列表选项的回调函数
function buildSelectCallBack() {
if (xmlHttp.readyState == 4) {
var optionsInfo = eval("("+xmlHttp.responseText+")"); //将从服务器获得的文本转为对象直接量
var targetSelNode = document.getElementById(targetSelId);
clearSubSel(targetSelId); //清除目标列表中的选项
//遍历对象直接量中的成员
for (var o in optionsInfo) {
targetSelNode.appendChild(createOption(o, optionsInfo[o])); //在目标列表追加新的选项
}
}
}//根据传入的value和text创建选项
function createOption(value, text) {
var opt = document.createElement("option"); //创建一个option节点
opt.setAttribute("value", value); //设置value
opt.appendChild(document.createTextNode(text)); //给节点加入文本信息
return opt;
}//清除传入的列表节点内所有选项
function clearOptions(selNode) {
selNode.length = 1; //设置列表长度为1,仅保留默认选项
selNode.options[0].selected = true; //选中默认选项
}//初始化列表数组(按等级)
function initSelArray() {
selArray = arguments; //arguments对象包含了传入的所有参数
}//清除下级子列表选项
function clearSubSel(targetId) {
var canClear = false; //设置清除开关,初始值为假
for (var i=0; i<selArray.length; i++) { //遍历列表数组
if (selArray[i]==targetId) { //当遍历至目标列表时,打开清除开关
canClear = true;
}
if (canClear) { //从目标列表开始到最下级列表结束,开关始终保持打开
clearOptions(document.getElementById(selArray[i])); //清除该级列表选项
}
}
}
</script>
</head><!-- 页面加载完毕做两件事:1.初始化列表数组 2.为第一个列表赋值 -->
<body onload="initSelArray('selA','selB','selC');buildSelect('INIT', 'selA')">
<h1>多级联动菜单</h1>
<table>
<tr>
<td>列表A</td>
<td>
<select name="selA" id="selA" onchange="buildSelect(this.value, 'selB')">
<option value="" selected>------请选择------</option>
</select>
</td>
</tr>
<tr>
<td>列表B</td>
<td>
<select name="selB" id="selB" onchange="buildSelect(this.value, 'selC')">
<option value="" selected>------请选择------</option>
</select>
</td>
</tr>
<tr>
<td>列表C</td>
<td>
<select name="selC" id="selC">
<option value="" selected>------请选择------</option>
</select>
</td>
</tr>
</table>
</body>
</html>
不好意思,忘记给你发java中的代码!现在发给你!记得给我加分哦!如果有什么不明白,可以给我写信!我的油箱:[email protected]
在这段代码里,是把查询到的数据包在一个字符串数组中
{'value':'name','value1':'name1','value2':'name2',............}
这样在返回到客户端的时候是一个xmlHttp.responseText
其实在java代码里我们也可以把查询出的数据写到一个xml文件里,然后
在客户端接受xmlHttp.responseXml<%@ page contentType="text/plain; charset=UTF-8"%>
<%@ page language="java"%>
<%@ page import="java.sql.*,ajax.db.DBUtils"%>
<%!
//访问数据库取得下级选项信息
String getOptions(String selectedId) {
int counter = 0; //计数器
StringBuffer opts = new StringBuffer("{"); //保存选项信息
String sql = "select * from select_menu where pid = ? order by seq asc";//定义查询数据库的SQL语句
Connection conn = null; //声明Connection对象
PreparedStatement pstmt = null; //声明PreparedStatement对象
ResultSet rs = null; //声明ResultSet对象
try {
conn = DBUtils.getConnection(); //获取数据库连接
pstmt = conn.prepareStatement(sql); //根据sql创建PreparedStatement
pstmt.setString(1, selectedId); //设置参数
rs = pstmt.executeQuery(); //执行查询,返回结果集
while (rs.next()) { //遍历结果集
//如果不是第一项,追加一个“,”用于分隔选项
if (counter > 0) {
opts.append(",");
}
opts.append("'");
opts.append(rs.getString("id"));
opts.append("':'");
opts.append(rs.getString("text"));
opts.append("'");
counter++; //计数器加1
}
} catch (SQLException e) {
System.out.println(e.toString());
} finally {
DBUtils.close(rs); //关闭结果集
DBUtils.close(pstmt); //关闭PreparedStatement
DBUtils.close(conn); //关闭连接
}
opts.append("}");
return opts.toString();
}
%>
<%
out.clear(); //清空当前的输出内容(空格和换行符) String selectedId = request.getParameter("selectedId"); //获取selectedId参数
String optionsInfo = getOptions(selectedId); //调用getOptions方法取得下级选项信息 out.print(optionsInfo); //输出下级选项信息
%>