基于asp+ajax和数据库驱动的二级联动菜单


Posted in PHP onMay 06, 2010

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 
%>
PHP 相关文章推荐
PHP怎样调用MSSQL的存储过程
Oct 09 PHP
PHP 获取文件路径(灵活应用__FILE__)
Feb 15 PHP
eAccelerator的安装与使用详解
Jun 13 PHP
去除php注释和去除空格函数分享
Mar 13 PHP
排序算法之PHP版快速排序、冒泡排序
Apr 09 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
Apr 10 PHP
php判断页面是否是微信打开的示例(微信打开网页)
Apr 25 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
Jun 10 PHP
PHP实现简单爬虫的方法
Jul 29 PHP
php阿拉伯数字转中文人民币大写
Dec 21 PHP
laravel 5异常错误:FatalErrorException in Handler.php line 38的解决
Oct 12 PHP
PHP创建XML接口示例
Jul 04 PHP
PHP 类商品秒杀计时实现代码
May 05 #PHP
PHP 面向对象 final类与final方法
May 05 #PHP
PHP 面向对象 PHP5 中的常量
May 05 #PHP
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
May 04 #PHP
一些被忽视的PHP函数(简单整理)
Apr 30 #PHP
php 将字符串按大写字母分隔成字符串数组
Apr 30 #PHP
mayfish 数据入库验证代码
Apr 30 #PHP
You might like
php与java通过socket通信的实现代码
2013/10/21 PHP
输入值/表单提交参数过滤有效防止sql注入的方法
2013/12/25 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
php实现的zip文件内容比较类
2014/09/24 PHP
跟我学Laravel之快速入门
2014/10/15 PHP
php常用字符串比较函数实例汇总
2014/11/24 PHP
php字符串操作针对负值的判断分析
2016/07/28 PHP
js控制的回到页面顶端goTop的代码实现
2013/03/20 Javascript
详解AngularJS中的作用域
2015/06/17 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
JavaScript入门教程之引用类型
2016/05/04 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
JS中关于事件处理函数名后面是否带括号的问题
2016/11/16 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
js获取地址栏参数的两种方法
2017/06/27 Javascript
JavaScript上传文件时不用刷新页面方法总结(推荐)
2017/08/15 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
vue使用监听实现全选反选功能
2018/07/06 Javascript
解决layui 表单元素radio不显示渲染的问题
2019/09/04 Javascript
Jquery异步上传文件代码实例
2019/11/13 jQuery
python实现倒计时的示例
2014/02/14 Python
Python中的with语句与上下文管理器学习总结
2016/06/28 Python
如何用itertools解决无序排列组合的问题
2017/05/18 Python
PyTorch学习笔记之回归实战
2018/05/28 Python
简单了解Python matplotlib线的属性
2019/06/29 Python
selenium+PhantomJS爬取豆瓣读书
2019/08/26 Python
PyTorch的自适应池化Adaptive Pooling实例
2020/01/03 Python
Python面向对象魔法方法和单例模块代码实例
2020/03/25 Python
阿根廷在线宠物商店:Puppis
2018/03/23 全球购物
美国马匹用品和马钉购物网站:State Line Tack
2018/08/05 全球购物
纯净、自信、100%的羊绒服装:360Cashmere
2021/02/20 全球购物
公务员转正鉴定材料
2014/02/11 职场文书
机电一体化求职信
2014/03/10 职场文书
副总经理岗位职责范本
2014/09/30 职场文书
单方离婚协议书范本2014
2014/10/28 职场文书
nginx location优先级的深入讲解
2021/03/31 Servers