基于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基础知识:控制结构
Dec 13 PHP
PHP+MYSQL开发工具及资源收藏
Jan 02 PHP
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
Apr 24 PHP
php 将excel导入mysql
Nov 09 PHP
destoon二次开发入门示例
Jun 20 PHP
php绘制一条弧线的方法
Jan 24 PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
Nov 07 PHP
Discuz论坛密码与密保加密规则
Dec 19 PHP
PHP对象的浅复制与深复制的实例详解
Oct 26 PHP
PHP实现简单计算器小程序
Aug 28 PHP
ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
May 06 PHP
laravel 实现划分admin和home 模块分组
Oct 15 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 新手入门教程
2009/08/03 PHP
php中用数组的方法设置cookies
2011/04/21 PHP
浅析PHP中的字符串编码转换(自动识别原编码)
2013/07/02 PHP
PHP实现数组array转换成xml的方法
2016/07/19 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
2020/09/17 PHP
查找页面中所有类为test的结点的方法
2014/03/28 Javascript
ES6中非常实用的新特性介绍
2016/03/10 Javascript
基于JS代码实现当鼠标悬停表格上显示这一格的全部内容
2016/06/12 Javascript
AngularJS 实现弹性盒子布局的方法
2016/08/30 Javascript
浅谈AngularJs指令之scope属性详解
2016/10/24 Javascript
深入了解JavaScript的逻辑运算符(与、或)
2016/12/20 Javascript
vue双向绑定简要分析
2017/03/23 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
JS使用setInterval实现的简单计时器功能示例
2018/04/19 Javascript
JS在if中的强制类型转换方式
2018/07/15 Javascript
微信小程序+腾讯地图开发实现路径规划绘制
2019/05/22 Javascript
Vue 中 a标签上href无法跳转的解决方式
2019/11/12 Javascript
vue实现商品列表的添加删除实例讲解
2020/05/14 Javascript
vue中解决拖拽改变存在iframe的div大小时卡顿问题
2020/07/22 Javascript
[06:09]辉夜杯主赛事开幕式
2015/12/25 DOTA
Python入门及进阶笔记 Python 内置函数小结
2014/08/09 Python
使用Python将数组的元素导出到变量中(unpacking)
2016/10/27 Python
如何把外网python虚拟环境迁移到内网
2020/05/18 Python
巴西女装购物网站:Eclectic
2018/04/24 全球购物
应届毕业生的个人自我鉴定
2013/10/24 职场文书
社区志愿者心得体会
2014/01/03 职场文书
我未来的职业规划范文
2014/01/11 职场文书
暑期社会实践方案
2014/02/05 职场文书
人事文员岗位职责
2014/02/16 职场文书
财务管理职业生涯规划书
2014/02/26 职场文书
党员个人查摆剖析材料
2014/10/16 职场文书
海底两万里读书笔记
2015/06/26 职场文书
Spring实现内置监听器
2021/07/09 Java/Android
纯html+css实现打字效果
2021/08/02 HTML / CSS