我做好琥珀无限级分类联动菜单Javascript版后,在蓝色理想和CSDN上发表了一下,梅花雪兄在CSDN上提出了效率不足的问题,我也认识到了这一点,本打算项目完工后再进行完善,但一时技痒,便在网上寻找了一下资料,最后做出了此AJAX版无限级分类联动菜单。因时间匆忙,做得比较粗糙,但已利用AJAX技术,实现无限级联动,待过一段时间再完善此版本。 希望能给大家提供一些帮助,有好的建议或bug可在此帖后回复或浏览http://www.51ajax.com/bbs/发帖。 运行环境:MS IE 6.0 FireFox 1.0.1 下载地址:请点击这里 在线Demo:请点击这里 Bug 反。呵氲慊髡饫 最后更新:2005-10-20 16:18 共有两个文件: 文件ajax.html代码如下:文件ajax_server.asp代码如下: <% @Language="JavaScript" %> <% function OpenDB(sdbname) { /* *--------------- OpenDB(sdbname) ----------------- * OpenDB(sdbname) * 功能:打开数据库sdbname,返回conn对象. * 参数:sdbname,字符串,数据库名称. * 实例:var conn = OpenDB("database.mdb"); *--------------- OpenDB(sdbname) ----------------- */ var connstr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+Server.MapPath(sdbname); var conn = Server.CreateObject("ADODB.Connection"); conn.Open(connstr); return conn; } var oConn = OpenDB("ajax_data.mdb"); var sel = Request("sel"); var classid = Request("classid") var fieldname = Request("fieldname") var arrResult = new Array(); //var sql = "select "+fieldname+" from Demo where parentid='"+sel+"' and classid="+classid; var sql = "select id,"+fieldname+" from Demo where parentid='"+sel+"'"; //Response.Write("alert("+sql+")") var rs = Server.CreateObject("ADODB.Recordset"); rs.Open(sql,oConn,1,1); while(!rs.EOF) { //遍历所有适合的数据放入arrResult数组中. arrResult[arrResult.length] = rs(0).Value+"|"+rs(1).Value; rs.MoveNext(); } //escape解决了XMLHTTP。中文处理的问题. //数组组合成字符串.由","字符串连接. Response.Write(escape(arrResult.join(","))); %> [Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0> 以上两个版本的程序,也是揉合了众多网友的智慧,经我之手呈现出来,互联网的初衷与精髓就在于分享,愿这个小程序能给您带来些许方便。