php 三级联动菜单

 更新时间:2009年07月11日 11:58:55   作者:  
这几天用到了三级联动,将asp的版本改为PHP的了
数据库结构
复制代码 代码如下:

-- 表的结构 `bigclass`
--
CREATE TABLE `bigclass` (
`bigclassid` int(11) NOT NULL auto_increment,
`bigclassname` varchar(200) collate utf8_unicode_ci NOT NULL,
`sort` int(11) NOT NULL,
`suoshu` int(1) NOT NULL,
PRIMARY KEY (`bigclassid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=19 ;
-- 表的结构 `smallclass`
--
CREATE TABLE `smallclass` (
`smallclassid` int(11) NOT NULL auto_increment,
`smallclassname` varchar(200) collate utf8_unicode_ci NOT NULL,
`bigclassid` int(11) NOT NULL,
`sort` int(11) NOT NULL,
PRIMARY KEY (`smallclassid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=7 ;
-- 表的结构 `minclass`
--
CREATE TABLE `minclass` (
`minclassid` int(10) NOT NULL auto_increment,
`minclassname` varchar(200) NOT NULL,
`bigclassid` int(10) NOT NULL,
`smallclassid` int(10) NOT NULL,
`sort` int(10) NOT NULL,
PRIMARY KEY (`minclassid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

代码如下
复制代码 代码如下:

<script language = "JavaScript">
var onecount;
onecount=0;
subcat = new Array();
<?
//类别选择
mysql_select_db($database_lr, $lr);
$sql = "select * from smallclass order by sort";
$result = mysql_query( $sql );
$count = 0;
while($res = mysql_fetch_row($result)){
?>
subcat[<?=$count?>] = new Array("<?=$res[1]?>","<?=$res[4]?>","<?=$res[0]?>");
<?
$count++;
}
?>
onecount=<?php echo $count?>
//联动函数
function changelocation(bigclassid)
{
document.myform.smallclassid.length = 0;
var bigclassid=bigclassid;
var i;
document.myform.smallclassid.options[0] = new Option('请选择二级分类','');
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == bigclassid)
{
document.myform.smallclassid.options[document.myform.smallclassid.length] = new Option(subcat[i][0], subcat[i][2]);
}
}
}
</script>
<?php
mysql_select_db($database_lr, $lr);
$sql2 = "select * from minclass order by sort";
$result2 = mysql_query( $sql2 );
$count2 = 0;
?>
<script language = "JavaScript">
//如果这个数组中含有双引号则不能使用。即二级和三级类不能含有双引号
var onecount2;
onecount2=0;
subcat2 = new Array();
<?php
$count2 = 0;
while($res2 = mysql_fetch_row($result2)){
?>
subcat2[<?php echo $count2?>] = new Array("<?php echo $res2[1]?>","<?php echo $res2[3]?>","<?php echo $res2[0]?>");
<?php
$count2++;
}
?>
onecount2=<?php echo $count2?>;
function changelocation2(smallclassid)
{
document.myform.minclassid.length = 0;
var smallclassid=smallclassid;
var j;
document.myform.minclassid.options[0] = new Option('请选择三级分类','');
for (j=0;j < onecount2; j++)
{
if (subcat2[j][1] == smallclassid)
{
document.myform.minclassid.options[document.myform.minclassid.length] = new Option(subcat2[j][0], subcat2[j][2]);
}
}
}
</script>
<select name="bigclassid" onChange="changelocation(document.myform.bigclassid.options[document.myform.bigclassid.selectedIndex].value)" size="1">
<option selected value="">请指定一级分类</option>
<?
$sql = "select * from bigclass order by sort";
$result = mysql_query( $sql );
while($res = mysql_fetch_row($result)){
?>
<option value="<? echo $res[0]; ?>"><? echo $res[1]?></option>
<? } ?>
</select>
<select name="smallclassid" onChange="changelocation2(document.myform.smallclassid.options[document.myform.smallclassid.selectedIndex].value)" size="1">
<option selected value="">请指定二级分类</option>
</select>
<select name="minclassid" size="1">
<option selected value="">==所有三级分类==</option>
</select>

相关文章

  • asp.net core项目授权流程详解

    asp.net core项目授权流程详解

    本文详细讲解了asp.net core项目的授权流程,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • Visual Studio Debug实战教程之断点操作

    Visual Studio Debug实战教程之断点操作

    众所周知断点对于Visual Studio调试过程是十分重要的,断点的设置也是为了更好的进行调试。下面这篇文章主要给大家介绍了关于Visual Studio Debug实战教程之断点操作的相关资料,需要的朋友可以参考下
    2018-09-09
  • 详解ASP.NET中Session的用法

    详解ASP.NET中Session的用法

    我们可以使用 Session 对象存储特定的用户会话所需的信息,这篇文章就为大家详细介绍了ASP.NET中Session的用法,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • 详解JQuery Ajax 在asp.net中使用总结

    详解JQuery Ajax 在asp.net中使用总结

    这篇文章主要介绍了详解JQuery Ajax 在asp.net中使用总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • 基于ABP架构开发的.Net Core项目部署到IIS问题汇总

    基于ABP架构开发的.Net Core项目部署到IIS问题汇总

    这篇文章介绍了基于ABP架构开发的.Net Core项目部署到IIS问题汇总,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • .net WINFORM的GDI双缓冲的实现方法

    .net WINFORM的GDI双缓冲的实现方法

    下面小编就为大家分享一篇.net WINFORM的GDI双缓冲的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • C# SetWindowPos窗口置顶使用说明

    C# SetWindowPos窗口置顶使用说明

    就是有时候窗口不能够成功置顶,这时需要重新切换下标签,就可以置顶了,本文介绍C# SetWindowPos实现窗口置顶的方法
    2012-12-12
  • asp.net+js实现批量编码与解码的方法

    asp.net+js实现批量编码与解码的方法

    这篇文章主要介绍了asp.net+js实现批量编码与解码的方法,涉及前端的jquery post提交及后台C#处理实现批量编码与解码的相关技巧,需要的朋友可以参考下
    2016-03-03
  • 拥有网页版小U盘 ASP.NET实现文件上传与下载功能

    拥有网页版小U盘 ASP.NET实现文件上传与下载功能

    这篇文章主要为大家详细介绍了ASP.NET实现文件上传与下载功能,类似于U盘功能,具有一定的参考价值。感兴趣的小伙伴们可以参考一下
    2016-08-08
  • asp.net 8 服务器爆满的解决过程

    asp.net 8 服务器爆满的解决过程

    如果遇到"服务器爆满"的问题,通常是指服务器无法处理更多的请求,可能是因为资源限制、并发连接数太多或者服务器配置不当,检查服务器资源:确保服务器有足够的CPU、内存和带宽资源来处理请求,调整Kestrel配置,可以在Program.cs或Startup.cs中配置最大并发连接数
    2024-05-05

最新评论