`

html页面联动菜单常用处理方式

阅读更多

html页面联动菜单比较常见,一般情况下,点击一个radio或者change一个select,根据业务逻辑的需要,页面动态显示一些不同的选择项。

 

下面是最近项目中一个常用的场景,处理方式比较简单,但很实用。程序处理逻辑:选择不同的radio,通过java程序到DB中进行查询,得到不同的结果,替换原来的选择项,显示到页面上。

 

<script type="text/javascript">
function levelClick(levelvalue){
	var checkedInfoStr = "";
	var id = "Level Type";
	var forcastNode = document.getElementById(id);
	var inputnode = forcastNode.getElementsByTagName("input");

	if(levelvalue=="pl"){
		document.getElementById("leveltypeId_pl").checked=true;
	}else if(levelvalue=="qt"){
		document.getElementById("leveltypeId_qt").checked=true;
	}
		
	for (var i = 0; i < inputnode.length; i++) {
		if ( inputnode[i].checked == true ){
			checkedInfoStr = inputnode[i].value;
			break;
		}
	}
		
	ltypeValue1 = checkedInfoStr;
	var centerid ="Original Center";
	var centerNode = document.getElementById(centerid);
	var inputnode = centerNode.getElementsByTagName("input");
	for (var i = 0; i < inputnode.length; i++) {
		if ( inputnode[i].checked == true ){
			checkedInfoStr += "#";
			checkedInfoStr += inputnode[i].value;
			break;
		}
	} 
	//这里发出去的信息的格式是ltype#centername的形式
		
     	creatXMLHttpRequest();
      	//alert(checkedInfoStr);
     	var url="tiggeCon_LtypeAndCenter2.dhcc";
     	xmlHttp.open("POST",url,true);
     	//xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
     	xmlHttp.onreadystatechange=handleStateChangeLevel;
     	//alert(checkedInfoStr);
      	xmlHttp.send(checkedInfoStr);
}
     
    function handleStateChangeLevel(){
     	if(xmlHttp.readyState==4){
     		levelChange();  		
     	}
     }
     
     function levelChange(){// 从服务器提取数据
	var msg = xmlHttp.responseText;                     //得到返回的信息
	//alert(msg);
	var id = "pressid";
	var pressNode = document.getElementById(id);
	pressNode.innerHTML = "";
	pressNode.innerHTML=msg;
	if(ltypeValue1 == "sl"){
		document.getElementById("pressureid").checked=true;
		document.all["Pressure Level"].style.display='none';
	}
	else{
		document.all["Pressure Level"].style.display='';
	}
     }
</script>

<tr>	
	<td align="left" nowrap="nowrap">
		<input id="leveltypeId_qt" name="leveltypeId" value="var1" onclick="levelClick('qt')" type="radio">single level products
	</td>
	<td align="left" nowrap="nowrap">
		<input id="leveltypeId_pl" name="leveltypeId" value="var2" onclick="levelClick('pl')" checked="checked" type="radio">pressure level products
	</td>
	
</tr>

 

服务端处理:

//根据DB查询结果构造页面div
private String test(String ltype,String cccc){
	StringBuffer sb=new StringBuffer();
		
	sb.append("<div id=\"Pressure Level\" style=\"width:605px;text-align:center;\" height=\"auto\">");
	sb.append("<fieldset style=\"font-size: 14px;\"><legend>Pressure Level</legend>");
	sb.append("<table class=\"u_fie_table\"><tbody>");
		
	String[][] pressurelevel = getPlevelByLtypeAndCCCC(ltype,cccc);//数据库查询
	if(pressurelevel!=null){
		int ys = pressurelevel.length % 6;
		int rowcount = 0;
		int colcount = 6;
		      
		if(ys == 0){
			rowcount = (pressurelevel.length)/colcount;
		}else{
			rowcount = ((pressurelevel.length)/colcount)+1;	
		}
			  
		for(int i = 0; i < rowcount; i++){
	 		sb.append("<tr>");
	 	 	if(i == rowcount-1 && ys != 0){
	 			colcount = ys;
		      	}
		         
		     	for(int j = 0; j < colcount; j++){
		    		int z = i * 6 + j;
		    	  
		    	  	sb.append("<td align=\"left\" nowrap=\"nowrap\">");
		    	  	sb.append("<input id=\"pressureid\" name=\"pressureid\" value=");
		    	  	sb.append(pressurelevel[z][0]);
		    	  	sb.append(" type=\"checkbox\">");
		    	  	sb.append(Integer.parseInt(pressurelevel[z][0])+"hPa");
		    	  	sb.append("</td>");
 	 	        	}
		      
		      	sb.append("</tr>");
	 	 	}
		}
		
		
		sb.append("<tr><td width=\"100%\" colspan=\"6\" align=\"center\">");		
		sb.append("<style type=\"text/css\">");
		sb.append(".u_fie_tabent{ width:100%;text-align:center;border-top:dotted 1px #d9e4ee;padding-top:5px;margin-top:10px;}");
		sb.append(".u_fie_tabent a{text-decoration: none;text-decoration:none;display:inline-table;padding:2px 5px;margin:2px 5px;border:solid 1px #d9e4ee;height:20px;line-height:18px;color:#666;background:#eef6fc;}");
		sb.append(".u_fie_tabent a:hover{background:#0066FF;color:#fff;}");
		sb.append("</style>");
		sb.append("<div class=\"u_fie_tabent\" >");
		sb.append("<a href=\"javascript:checkAll(document.forms[0].pressureid);\">Select All</a>");
		sb.append("<a href=\"javascript:uncheckAll(document.forms[0].pressureid);\">Clear All</a>");
		sb.append("</div>");
		sb.append("</td></tr>");
		sb.append("</tbody></table>");
		sb.append("</fieldset></div>");

		
		....
		
		return sb.toString();
}

 

分享到:
评论

相关推荐

    js实现简单的联动菜单效果

    网页上常用到一种Select联动菜单。 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-select-ld-menu-codes/ 具体代码如下: &lt;html&gt; &lt;head&gt; &lt;title&gt;简单的Select联动...

    JS简单实现多级Select联动菜单效果代码

    本文实例讲述了JS简单实现...JS联动菜单,简单代码实现JS多级Select联动菜单,也就是大家常用的一款菜单,Select联动状态的菜单,网页上经常见到的效果,希望大家能用得上。 运行效果截图如下: 在线演示地址如下: ...

    JSP实用技巧集合,jsp编程的一些小技巧总结

    4. 两级下拉列表框联动菜单? 5. java中如何把一个目录下的文件移到另一个指定的目录? 6. 制作表格线? 7. jsp如判别一个字符在A到Z之间? 8. 得到一浮点数小数点后4位,如何写以函数截取为两位 9. 整型转字符? 10. ...

    《程序天下:JavaScript实例自学手册》光盘源码

    1.1 HTML页面反向显示 1.2 页面自动最大化 1.3 页面自动刷新 1.4 页面的后退、刷新、前进 1.5保护网页源代码 1.6 保护自己的网页不被放入框架 1.7 保护自己的网页不被放入框架 1.8 打印页面的出错原因 1.9 当前网页...

    程序天下:JavaScript实例自学手册

    1.1 HTML页面反向显示 1.2 页面自动最大化 1.3 页面自动刷新 1.4 页面的后退、刷新、前进 1.5保护网页源代码 1.6 保护自己的网页不被放入框架 1.7 保护自己的网页不被放入框架 1.8 打印页面的出错原因 1.9 当前网页...

    精通JS脚本之ExtJS框架.part2.rar

    本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计进度条、设计工具栏和菜单栏、设计面板、设计表格、设计表单、设计数据表、...

    精通JS脚本之ExtJS框架.part1.rar

    本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计进度条、设计工具栏和菜单栏、设计面板、设计表格、设计表单、设计数据表、...

    jsp编程技巧集锦

    两级下拉列表框联动菜单? 5. java中如何把一个目录下的文件移到另一个指定的目录? 6. 制作表格线? 7. jsp如判别一个字符在A到Z之间? 8. 得到一浮点数小数点后4位,如何写以函数截取为两位 9. 整型...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例163 省市县级联动菜单 194 实例164 应用下拉列表选择所要联机的网站 196 实例165 可输入字符的下拉菜单 197 实例166 设置下拉列表的默认值 198 实例167 设置下拉列表的样式 199 实例168 下拉列表打开窗口 200 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例163 省市县级联动菜单 194 实例164 应用下拉列表选择所要联机的网站 196 实例165 可输入字符的下拉菜单 197 实例166 设置下拉列表的默认值 198 实例167 设置下拉列表的样式 199 实例168 下拉列表打开窗口 200 ...

    python入门到高级全栈工程师培训 第3期 附课件代码

    02 什么是异常处理及异常处理的两种方式对比 03 多分支与万能异常 04 异常处理的其他内容 05 什么时候用异常处理 06 什么是socket 07 套接字发展及分类 08 基于tcp协议的套接字编程 09 socket底层工作原理解释 10 ...

    DolphinPHP快速开发框架 v1.4.2.zip

    修正:插件和模块管理页面简介无法识别html的问题 修正:表单中有name为action的表单项时,url获取不正确的问题 修正:某些情况下,无法读取模块配置文件信息的问题 修正:在PHP7.3下long2ip方法报错的问题 修正...

    asp.net知识库

    在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把Array转换为ArrayList C# 2.0 在.NET 2.0中...

    Ext Js权威指南(.zip.001

    9.8.2 在单页面应用中使用卡片布局实现“页面”切换 / 496 9.9 本章小结 / 498 第10章 重构后的grid / 500 10.1 grid的基类及其构成 / 500 10.1.1 概述 / 500 10.1.2 表格面板的运行流程:ext.panel.table / ...

    RuoYi若依管理系统-其他

    导入结果会丢失精度问题优化更多操作按钮左侧移入内容闪现消失情况修复主子表提交中列隐藏后出现列偏移问题单据打印网页时通过hidden-print隐藏元素表格销毁清除记住选择数据增加表格动态列示例代码生成选择主子表...

Global site tag (gtag.js) - Google Analytics