http://www.dev-club.com/club/bbs/showAnnounce.asp?id=2454423

解决方案 »

  1.   

    http://blog.csdn.net/twt326
    里面有篇文章,是不才小弟写的,也许对你会有所帮助。还请赐教。
    http://blog.csdn.net/twt326/archive/2004/11/15/182854.aspx
      

  2.   

    twt326(天地小子):
    你给文章打不开,能否烦你给发信箱[email protected]
    非常感谢!
      

  3.   

    请教twt326(天地小子):你的程序我看到了,但还没调通,有些不明白的地方希望你能解答一下:
    <form action="index.php?action=admin_area&act=<? if($_GET[act]=='addd') echo 'tj'; else echo 'xslb';?>" method="post" name="frmfarea">
    这里面act后面是什么意思?
    是不是还缺一个f_tjid的隐藏框?
    getareadata.php 代码中,$output.="<option value='$rst[aa_id]'>$rst[aa_name]</option>";这里如果数据库查询的字段不一样该怎么写?
      

  4.   

    我给你一个2级联动的菜单,你调试好,再加一级就可以了,都是从数据库取的,我这是国家对应省(市)的,首先在准备放联动菜单下拉框的地方放<?php require("country_procince.php");?>,因为下拉框我都放在country_procince.php里面写的country_procince.php文件内容如下:
    <?php 
    session_start();
    include("../inc/constant.inc");
    include("../inc/db.inc");$query1=mysql_query("select * from country where language_kind = '0' order by id asc"); 
    $fMenu=""; 
    $fValue=""; 
    while($data1=mysql_fetch_array($query1)){ 
    $fMenu.="\"".$data1[name]."\","; 
    $fValue.="\"".$data1[id]."\","; } 
    $fMenu=substr($fMenu,0,(strlen($fMenu)-1)); 
    $fMenu="[".$fMenu."]";//*****************************得到var fMenu 
    $fValue=substr($fValue,0,(strlen($fValue)-1)); 
    $fValue="[".$fValue."]";//*****************************得到var fValue //得到*****************************var sMenu 
    $query1=mysql_query("select * from country where language_kind = '0' order by id asc");   //大类的SQL
    while($data1=mysql_fetch_array($query1)){ 
    $province_id1=$data1[id]; $query2=mysql_query("select * from province where province_id='$province_id1' order by province_id desc");   //小类SQL
    while($data2=mysql_fetch_array($query2)){ 
    $num=mysql_num_rows($query2); 
    $i++; 
    $sMenu.="\"".$data2[name]."\","; 
    if($i==$num){ 
    $sMenu="[".$sMenu."],["; 
    $i=0; 



    $sMenu.="]"; 
    $sMenu=str_replace("\",]","\"]",$sMenu); 
    $sMenu=str_replace(",[]","]",$sMenu); 
    if((substr($sMenu,0,2))=="[\""){ 
    $sMenu="[".$sMenu; 
    }else{ 
    $sMenu=preg_replace("/\[{3,}/is","[[\\1",$sMenu);//匹配 
    } //得到*****************************var sValue 
    $query1=mysql_query("select * from country where language_kind = '0' order by id asc");   //大类
    while($data1=mysql_fetch_array($query1)){ 
    $province_id=$data1[id]; $query2=mysql_query("select * from province where province_id='$province_id' order by province_id asc");    //小类 
    while($data2=mysql_fetch_array($query2)){ 
    $nums=mysql_num_rows($query2); 
    $j++; 
    $sValue.="\"".$data2[id]."\","; 
    if($j==$nums){ 
    $sValue="[".$sValue."],["; 
    $j=0; 



    $sValue.="]"; 
    $sValue=str_replace("\",]","\"]",$sValue); 
    $sValue=str_replace(",[]","]",$sValue); 
    if((substr($sValue,0,2))=="[\""){ 
    $sValue="[".$sValue; 
    }else{ 
    $sValue=preg_replace("/\[{3,}/is","[[\\1",$sValue);//匹配 
    } ?> 
    <div id="tar"></div> 
    <SCRIPT LANGUAGE="JavaScript" DEFER> 
    var fMenu = <?php echo $fMenu; ?>; 
    var fValue = <?php echo $fValue; ?>; 
    var sMenu = <?php echo $sMenu; ?>; 
    var sValue = <?php echo $sValue; ?>; var oWhere = document.all.tar; 
    var ofMenu = document.createElement("<SELECT name='bigclass'>"); 
    var osMenu = document.createElement("<SELECT name='smallclass'>"); 
    with(oWhere)appendChild(ofMenu),appendChild(osMenu); createMainOptions(); 
    createSubOptions(0); ofMenu.onchange = function() {createSubOptions(this.selectedIndex);}; function createMainOptions() { 
    for(var i=0;i<fMenu.length;i++)ofMenu.options[i] = new Option(fMenu[i],fValue[i]); 

    function createSubOptions(j) { 
    with(osMenu) { 
    length=0; 
    for(var i=0;i<sMenu[j].length;i++)osMenu.options[i] = new Option(sMenu[j][i],sValue[j][i]); 


    </SCRIPT> 
    <?php
    /* 
    调用方法: 
    $bigclass=$_POST["bigclass"];//取得大类的id值 
    $smallclass=$_POST["smallclass"];//取得小类的id值 
    接下来就知道该怎么做了吧…… 
    附表的结构: 
     可能有的表的结构和我有些不同,但基本点都一样,修改程序 
    中对应字段和表名就ok 
    程序写的有点乱,不过绝对可以放心的使用 
    欢迎与我交流探讨! 
    --------------------------------------------------------- 
    大类的表news_bclass结构 CREATE TABLE news_bclass ( 
    id int(11) NOT NULL auto_increment, 
    bname varchar(10) NOT NULL default '', 
    PRIMARY KEY (id), 
    UNIQUE KEY id_2 (id), 
    KEY id (id) 
    ) TYPE=MyISAM; 字段说明:bname为大类中文名称 
    ------------------------------ 小类的表news_sclass结构 CREATE TABLE news_sclass ( 
    id int(11) NOT NULL auto_increment, 
    sname varchar(10) NOT NULL default '', 
    parentid int(10) NOT NULL default '0', 
    bname varchar(10) NOT NULL default '', 
    PRIMARY KEY (id), 
    UNIQUE KEY id_2 (id), 
    KEY id (id) 
    ) TYPE=MyISAM; 字段说明:sname为小类中文名称 
         parendid为大类中的id值 
    bname为大类中文名称 
    ----------------------------------------------------------- 
    */ 
    ?>
      

  5.   

    用javascript控制
    先用php从数据表里取出数据
    再用js生成不同的options