基于asp+ajax和数据库驱动的二级联动菜单
基于asp+ajax和数据库驱动的二级联动菜单
发布时间:2016-12-29 来源:查字典编辑
摘要:index.asp页面代码复制代码代码如下:ajax.js代码复制代码代码如下://JavaScriptDocumentfunctioncr...

index.asp 页面代码

复制代码 代码如下:

<>

<%

set cmd = conn.execute("select bigclassid,bigclassname from bigclass")

tempid=cmd("bigclassid")

%>

<select name="menu" onChange="getsubcategory(this.value);">

<%

if not cmd.eof then

do while not cmd.eof

bigclassid= cmd("bigclassid")

bigclassname = cmd("bigclassname")

%>

<option value="<%=bigclassid%>"><%=bigclassname%></option>

<%

cmd.movenext

loop

end if

cmd.close

set cmd = nothing

%>

</select>

<div id="subclass">

<select name="submenu">

<%

set cxd = conn.execute("select * from smallclass where bigclassid=" & tempid)

if not cxd.eof then

do while not cxd.eof

smallclassid= cxd("smallclassid")

smallclassname = cxd("smallclassname")%>

<option value="<%=smallclassid%>"><%=smallclassname%></option>

<%

cxd.movenext

loop

cxd.close

set cxd = nothing

else

html = "<select name='smallclassid'><option value='0' selected>暂无小类</option></select>"

response.write html

end if

%>

</select>

</div>

ajax.js 代码

复制代码 代码如下:

// JavaScript Document

function createxmlhttp()

{

xmlhttpobj = false;

try{

xmlhttpobj = new XMLHttpRequest;

}catch(e){

try{

xmlhttpobj=new ActiveXObject("MSXML2.XMLHTTP");

}catch(e2){

try{

xmlhttpobj=new ActiveXObject("Microsoft.XMLHTTP");

}catch(e3){

xmlhttpobj = false;

}

}

}

return xmlhttpobj;

}

function getsubcategory(bigclassid){

if(bigclassid==0){

document.getElementById("subclass").innerHTML="<select name='smallclassid'><option value='0' selected>选择二级分类</option></select>";

return;

};

var xmlhttpobj = createxmlhttp();

if(xmlhttpobj){//如果创建对象xmlhttpobj成功

xmlhttpobj.onreadystatechange=handle;

xmlhttpobj.open('get',"getsubcategory.asp?bigclassid="+bigclassid+"&number="+Math.random(),true);//get方法 加个随机数。

xmlhttpobj.send(null);

}

}

function handle(){//客户端监控函数

//if(xmlhttpobj.readystate==4){//服务器处理请求完成

if(xmlhttpobj.status==200){

//alert('ok');

var html = xmlhttpobj.responseText;//获得返回值

document.getElementById("subclass").innerHTML=html;

}else{

document.getElementById("subclass").innerHTML="对不起,您请求的页面有问题...";

}

//}

//else{

//document.getElementById("subclass").innerHTML=xmlhttpobj.readystate;//服务器处理中

//}

//}

}

getsubcategory.asp 代码

复制代码 代码如下:

<%@language="vbscript" codepage="936"%>

<>

<%

response.charset="gb2312"

bigclassid=safe(request.querystring("bigclassid"))

if bigclassid<>"" then

set re=new regexp

re.ignorecase=true

re.global=false

re.pattern = "^[0-9]{1,3}$"

if not re.test(bigclassid) then

response.write "非法参数"

response.end

end if%>

<%on error resume next

set p = conn.execute("select * from smallclass where bigclassid=" & bigclassid)

if err then

err.clear

response.write "查询出错"

response.end

end if

if not p.eof then

html = "<select name='select2'>"&vbnewline

do while not p.eof

html = html&"<option value='"&p("smallclassid")&"'>"&p("smallclassname")&"</option>"&vbnewline

p.movenext

loop

html = html&"</select>"

else

html = "<select name='smallclassid'><option value='0' selected>暂无小类</option></select>"

end if

p.close

set p = nothing

conn.close

set conn = nothing

response.write html

html = ""

end if

%>

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新php教程学习
热门php教程学习
编程开发子分类