三級聯動的代碼

基於網友的要求,我貼出在項目中用到的三級聯動的代碼:

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.οnlοad=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" οnchange="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" οnchange="Change_Select2()">
<html:option value="0">   </html:option>
</html:select>
<html:select property="m_lbbm_th" styleId="m_lbbm_th" οnchange="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;
}
}
主要代碼就這些,去掉一些權限大代碼,真正的代碼並不多。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章