天天看点

AJAX实现web页面中级联菜单的设计

看了大峡搞的级联菜单,我也班门弄斧一把,嘿嘿,花了一点时间搞了个级联菜单贴上来看看。本例中只要你选择成员分类名称就会自动显示成员名称:

   首先在eclipse中建一个项目,名称你自己做主了,这里为easyjf-menu,对应的浏览器页面代码为:

 easyjf-menu.jsp

 <@page contenttype=”text/html;charser=utf-8” language=”java”%>

 <head>

   ……..

 </head>

 <script language=”javascript”>

   var xmlhttpreq;

   var currentsort;

   //创建xmlhttprequset对象

   function createxmlhttprequest(){

   if(window.xmlhttprequest){

   xmlhttpreq=new xmlhttprequest();

 }

else if (window.activexobject){

  try{

     xmlhttpreq=new activexobject(“msxml2.xmlhttp”);

    }catch(e){}

       try{

 xmlhttprequest=new activexobject(“microsoft.xmlhttp”);

}catch(e){}

}

//发送请求函数

function sendrequest(url){

 createxmlhttprequest();

 xmlhttpreq.open(“get”,url,true);

 xmlhttpreq.onreadystatechange=processresponse;

 xmlhttpreq.send(null);

//处理返回信息函数

function processresponse(){

   if(xmlhttprequest.readystate==4){

   if(xmlhttprequest.status==200){

 updatemenu();

}else{alert(“您请求的页面有异常!”)}

//更新菜单函数

function updatemenu(){

 var res=xmlhttpreq.responsexml.getelementidbytagname(“res”);

 var sunmenu=””;

 for(var i=0;i<res.length;i++){

 submenu=submenu+res[1].fistchild.data+”<br>”;

currentsort.innerhtml=submenu;

//创建级联菜单

function showsubmenu(obj){

   currentsort=document.getelementbyid(obj);

   currentsort.parentnode.style.display=””;

   sendrequest(“menu?sort=”+obj);

</script>

<b>easyjf成员</b>

<a onclick=”onshowsubmenu(‘大峡’)”>大峡</a>

  该页面中提供了对应的菜单以供用户选择,用户选择菜单后,调用showsubmenu(‘xxx’)函数,其中参数用于传递用户所选菜单的标识信息到服务器以决定获取服务器的哪个在菜单内容,首先获得菜单的识别信息,再提交给ajax,这里用innerhtml属性实现定位显示 。