zoukankan      html  css  js  c++  java
  • php三级联动菜单

    之前有发过PHP二级菜单
    http://www.corange.cn/archives/2008/12/2857.html
    和ASP三级联动菜单
    http://www.corange.cn/archives/2006/08/15.html
    这几天用到了三级联动,将asp的版本改为PHP的了
    特地发出来,经过corange.cn测试过了。
    数据库结构
    -- 表的结构 `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>
    转载请保留版权,本文首发于corange.cn
    http://www.corange.cn/archives/2009/07/3294.html
  • 相关阅读:
    [Xcode 实际操作]六、媒体与动画-(17)使用MediaPlayer框架播放视频
    [Xcode 实际操作]六、媒体与动画-(16)实现音乐的背景播放
    [Xcode 实际操作]六、媒体与动画-(15)使用AudioPlayer播放音乐
    [Xcode 实际操作]六、媒体与动画-(14)使用SystemSoundId播放简短声音
    [Xcode 实际操作]六、媒体与动画-(13)使用UIImageView制作帧动画
    [Swift]LeetCode148. 排序链表 | Sort List
    [Swift]LeetCode147. 对链表进行插入排序 | Insertion Sort List
    [Swift]LeetCode146. LRU缓存机制 | LRU Cache
    【POJ3615】Cow Hurdles 最短路,你若LCA,我仍不拦你。
    How MapReduce Works
  • 原文地址:https://www.cnblogs.com/zerogo/p/1520208.html
Copyright © 2011-2022 走看看