基于网友的要求,我贴出在项目中用到的三级联动的代码:
jsp的代码:
<%@ page contentType = "text/html; charset=GBK" import="java.util.*,com.wehave.hyerp.procurement.domain.Cgsqd"%>
<%@ taglib uri="struts-html" prefix="html" %>
<%@ taglib uri="struts-logic" prefix="logic" %>
<%@ taglib uri="struts-bean" prefix="bean" %>
<html>
<head>
<title> </title>
<link rel = "stylesheet" type = "text/css" href = "../css/olstyle.css">
<SCRIPT type="text/javascript">
var req;
window.onload=function(){
}
function Change_Select()
{
var zhi=document.getElementById('m_gykfwzlbb_lbbm').value;
var url="sqdSelect.go?method=getSkill&id="+zhi;
if(zhi=="0"){
alert("请选择您要察看的信息");
return;
}else{
if(window.XMLHttpRequest)
{
req=new XMLHttpRequest();
}else if(window.ActiveXObject)
{
req=new ActiveXObject("Microsoft.XMLHTTP");
}
if(req)
{
req.open("GET",url,true);
req.onreadystatechange=callback;
req.send(null);
}
}
}
function Change_Select2()
{
var zhi=document.getElementById('m_lbbm_se').value;
//alert(zhi.substring(0,2));
if(zhi=="0"){
alert("请选择您要察看的信息");
return;
}
if(zhi.substring(0,2)=="WY"){
var url="sqdSelect.go?method=getSkill2&id="+zhi;
if(window.XMLHttpRequest)
{
req=new XMLHttpRequest();
}else if(window.ActiveXObject)
{
req=new ActiveXObject("Microsoft.XMLHTTP");
}
if(req)
{
req.open("GET",url,true);
req.onreadystatechange=callback2;
req.send(null);
}
}else{
parent.topFram.location ="sqdSelectAll.go?method=getlistAll&id="+zhi;
}
}
function Change_Select3()
{
var zhi=document.getElementById('m_lbbm_th').value;
//alert(zhi.substring(0,2));
if(zhi=="0"){
alert("请选择您要察看的信息");
return;
}else{
parent.topFram.location ="sqdSelectAll.go?method=getlistAll2&id="+zhi;
}
}
function callback()
{
if(req.readyState == 4)
{
if(req.status == 200)
{
parseMessage();
}else{
alert("Not able to retrieve description"+req.statusText);
}
}
}
function callback2()
{
if(req.readyState == 4)
{
if(req.status == 200)
{
parseMessage2();
}else{
alert("Not able to retrieve description"+req.statusText);
}
}
}
function parseMessage()
{
var xmlDoc=req.responseXML.documentElement;
var xSel=xmlDoc.getElementsByTagName('select');
var select_root=document.getElementById('m_lbbm_se');
select_root.options.length=0;
for(var i=0;i<xSel.length;i++)
{
var xValue=xSel[i].childNodes[0].firstChild.nodeValue;
var xText=xSel[i].childNodes[1].firstChild.nodeValue;
var option=new Option(xText,xValue);
try{
select_root.add(option);
}catch(e){
}
}
}
function parseMessage2()
{
var xmlDoc=req.responseXML.documentElement;
var xSel=xmlDoc.getElementsByTagName('select');
var select_root=document.getElementById('m_lbbm_th');
select_root.options.length=0;
for(var i=0;i<xSel.length;i++)
{
var xValue=xSel[i].childNodes[0].firstChild.nodeValue;
var xText=xSel[i].childNodes[1].firstChild.nodeValue;
var option=new Option(xText,xValue);
try{
select_root.add(option);
}catch(e){
}
}
}
</SCRIPT>
</head>
<body bgcolor = "#C8D0D4">
<html:form action="/cgsqdNewAction.go">
<TABLE class = "cbToolbar" id = "idToolbar" cellpadding = '0' cellspacing = '0'>
<TR align = "left" valign = "top" >
<TD NOWRAP> 物质类别:
<html:select property="m_gykfwzlbb_lbbm" onchange="Change_Select()">
<html:option value="0">请选择</html:option>
<html:options collection="LbfList" property="m_gykfwzlbb_lbbm" labelProperty="m_gykfwzlbb_lbmc"/>
</html:select>
<html:select property="m_lbbm_se" styleId="m_lbbm_se" onchange="Change_Select2()">
<html:option value="0"> </html:option>
</html:select>
<html:select property="m_lbbm_th" styleId="m_lbbm_th" onchange="Change_Select3()">
<html:option value="0"> </html:option>
</html:select>
</TD>
</tr>
</table>
</html:form>
</body>
</html>
action中的代码:
/** *//**
*
* 查询物质编码类别列表操作(一级)
* */
public ActionForward doSelectWzlb(
ActionMapping mapping,
ActionForm form,
HttpServletRequest req,
HttpServletResponse res) {
HttpSession session = req.getSession();
UserSession userSession =
(UserSession) session.getAttribute("userSession");
permission.setUserID(userSession.getUserId());
permission.setUserName(userSession.getUserName());
permission.setModuleName("m_cgsqd");
permission.setActionStr("'m_select'");
if(permissionService.checkUserPermission(permission)){
int updateSign=0;
try{
cgsqdService.updateCgsqwzhzb_sqsl();
updateSign=1;
}catch(Exception e){
e.printStackTrace();
updateSign=0;
}
if(updateSign==1){
List LbfList=cgsqdService.treeListWzlb2();
req.setAttribute("LbfList",LbfList);
return mapping.findForward("tools");
}else{
return null;
}
}else{
return mapping.findForward("failure");
}
}
/** *//**
*
* 查询物质编码类别列表操作(二级)
* */
public ActionForward doSelectWzlb1(
ActionMapping mapping,
ActionForm form,
HttpServletRequest req,
HttpServletResponse res) {
HttpSession session = req.getSession();
UserSession userSession =
(UserSession) session.getAttribute("userSession");
permission.setUserID(userSession.getUserId());
permission.setUserName(userSession.getUserName());
permission.setModuleName("m_cgsqd");
permission.setActionStr("'m_select'");
if(permissionService.checkUserPermission(permission)){
int updateSign=0;
try{
cgsqdService.updateCgsqwzhzb_sqsl();
updateSign=1;
}catch(Exception e){
e.printStackTrace();
updateSign=0;
}
if(updateSign==1){
List LbfList=cgsqdService.treeListWzlb2();
req.setAttribute("LbfList",LbfList);
return mapping.findForward("tools1");
}else{
return null;
}
}else{
return mapping.findForward("failure");
}
}
/** *//**
*
* 查询物质编码类别列表操作(三级)
* */
public ActionForward getSkill(
ActionMapping mapping,
ActionForm form,
HttpServletRequest req,
HttpServletResponse res) {
HttpSession session = req.getSession();
UserSession userSession =
(UserSession) session.getAttribute("userSession");
permission.setUserID(userSession.getUserId());
permission.setUserName(userSession.getUserName());
permission.setModuleName("m_cgsqd");
permission.setActionStr("'m_select'");
if(permissionService.checkUserPermission(permission)){
String id=req.getParameter("id");
res.setContentType("text/xml;charset=GBK");
res.setHeader("Cache-Control","no-cache");
String xml_start="<?xml version=\"1.0\" encoding=\"GBK\"?>";
xml_start+="<selects>";
String xml_end="</selects>";
String xml="<select><value>0</value><text>请选择</text></select>";
String m_lbbm_se="";
String m_lbmc_se="";
List LbfList=null;
if(id.equals("WY")){
LbfList=cgsqdService.treeListWzlb3_2(id);
}else{
LbfList=cgsqdService.treeListWzlb3_1(id);
}
Iterator it=LbfList.iterator();
while(it.hasNext()){
Cgsqd cgsqd=(Cgsqd)it.next();
m_lbbm_se=cgsqd.getM_gykfwzlbb_lbbm();
m_lbmc_se=cgsqd.getM_gykfwzlbb_lbmc();
xml +="<select><value>"+m_lbbm_se+"</value><text>"+m_lbmc_se+"</text></select>";
}
String last_xml=xml_start+xml+xml_end;
logger.debug("XML是:"+last_xml);
try {
res.getWriter().write(last_xml);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}else{
return null;
}
} 主要代码就这些,去掉一些权限大代码,真正的代码并不多。
posted on 2006-08-09 15:21
千山鸟飞绝 阅读(13604)
评论(10) 编辑 收藏 所属分类:
Ajax