基于asp+ajax和数据库驱动的二级联动菜单
程序员文章站
2022-04-28 14:35:40
index.asp 页面代码 复制代码 代码如下: <% set cmd = conn....
index.asp 页面代码
<!--#include file="conn.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"%>
<!--#include file="conn.asp"-->
<%
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
%>
复制代码 代码如下:
<!--#include file="conn.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"%>
<!--#include file="conn.asp"-->
<%
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
%>
推荐阅读
-
jsp从数据库获取数据填充下拉框实现二级联动菜单的方法
-
一个强健 实用的asp+ajax二级联动菜单(有演示和附源程序打包下载)
-
基于asp+ajax和数据库驱动的二级联动菜单
-
Ajax通过XML异步提交的方法实现从数据库获取省份和城市信息实现二级联动(xml方法)
-
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
-
实列教程 一款基于jquery和css3的响应式二级导航菜单
-
一个强健 实用的asp+ajax二级联动菜单(有演示和附源程序打包下载)
-
element实现二级菜单和顶部导航联动的示例
-
基于asp+ajax和数据库驱动的二级联动菜单
-
基于asp+ajax和数据库驱动的二级联动菜单_php技巧