怎么把PHP无级联动的数据输出到JS无级联动里?有没有无级联动的JS呀俺要把PHP的无级联动弄到JS里显示现在PHP的无级联动有了,JS读取PHP的联动怎么实现呀PHP的联动我用的是这个:http://hi.baidu.com/shut/blog/item/22e893ca57369785c817689c.html

解决方案 »

  1.   

    没人敢回答吗,AJAX的也行。算了你们不说我自己说吧。先用AJAX发送请求。    用PHP页接收,有URL参数的话,就判断是不是终极栏目,是的话就不要再输出<SELECT>标记了,不是的话,再用PHP输出子栏目的分类放到2级<SELECT>里。    如果URL没有参数,直接用PHP输出一级栏目的<SELECT>然后用AJAX得到以上结果这样应该可以吧,有什么要注意的问题呢,流量,数据量大的情况下会不会影响效率呢,用JSON成不?
      

  2.   

    首先你的 php 部分不支持 ajax 动态加载
    其次是应现有样式再有数据处理程序
    即:先要有 html+js 的无级联动, 再根据他的要求编写php程序来产生他需要的数据
      

  3.   

    你既然用ajax,就应该先把ajax部分先做出来。
      

  4.   

    好,我想写一个级联联动菜单,数据库 结构是     地区代码和地区名地区代码的规律是
    第1,2位       代表省 
    第3,4位       代表市
    第5,6位       代表县
    第7,8,9位    代表乡
    第10,11,12位 代表村
    现在分5个表,省表,市表,县表,乡表,村表请问用php如何写这个联动菜单
      

  5.   

    经典的php二级联动菜单<script language = "JavaScript">    
    var onecount;    
    onecount=0;    
    subcat = new Array();    
    <?    
    mysql_connect("localhost","root","");    
    mysql_select_db( "test" );    
    $sql = "select * from subject";    
    $result = mysql_query( $sql );    
    $count = 0;    
    while($res = mysql_fetch_row($result)){    
    ?>    
    subcat[<?=$count?>] = new Array("<?=$res[0]?>","<?=$res[1]?>","<?=$res[2]?>");    
    <?    
    $count++;    
    }    
    echo "onecount=$count;";    
    ?>    
    //联动函数    
    function changelocation(locationid)    
    {    
    document.myform.ctype.length = 0;     
    var locationid=locationid;    
    var i;    
    for (i=0;i < onecount; i++)    
           {    
             if (subcat[i][2] == locationid)    
             {     
       //var newOption1=new Option(subcat[i][1], subcat[i][0]);    
                //document.all.ctype.add(newOption1);    
                document.myform.ctype.options[document.myform.ctype.length] = new Option(subcat[i][1], subcat[i][0]);    
             }           
           }    
              
    }     
    </script>    
    <form method="post" name="myform" action="ru_query.php">    
    <select name="type" onChange="changelocation(document.myform.type.options[document.myform.type.selectedIndex].value)" size="1">    
    <option selected value="">请指定主分类</option>    
              
    <?    
    $sql = "select * from depart";    
    $result = mysql_query( $sql );    
    while($res = mysql_fetch_row($result)){    
    ?>    
    <option value="<? echo $res[0]; ?>"><? echo $res[1]; ?></option>    
       <? } ?>    
              
       </select>     
       
    <select name="ctype">                    
           <option selected value="">请指定小分类</option>    
    </select>    
    <input type="submit" name="Submit" value="搜索">    
    </form>   
     数据库机构如下
    表depart--------departID departName
    表subject-------subjectID subjectName departID1.通过精选取得数据库的字段并且存入数组
    2.定义自定义函数,遍历数组并且使用echo命令把$参数转化成js可以使用的变量
    3.在js中使用<?自定义函数?>参数进行传递
    4.通过js的new Option重新组织菜单选项
      

  6.   

    php二级联动菜单<?php 
    /*******************************************
    **********功能:php二级联动菜单*************
    **********作者:小光*************************
    **********Email:[email protected]**************
    **********日期:2007/10/02******************
    **********请转载时保留版权信息**************
    *******************************************/require_once('db.inc.php');//数据库连接
    $db=new hq_online;
    $db1=new hq_online;
    $db->query("select * from news_bclass order by id desc");
    $fMenu="";
    $fValue="";
    while($db->next_record()){
    $fMenu.="\"".$db->Record["bname"]."\",";
    $fValue.="\"".$db->Record["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
    $db->query("select * from news_bclass order by id desc");
    while($db->next_record()){
    $parentid=$db->Record["id"];
    $db1->query("select * from news_sclass where parentid='$parentid' order by parentid desc");
    while($db1->next_record()){
    $num=$db1->num_rows();
    $i++;
    $sMenu.="\"".$db1->Record["sname"]."\",";
    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
    $db->query("select * from news_bclass order by id desc");
    while($db->next_record()){
    $parentid=$db->Record["id"];
    $db1->query("select * from news_sclass where parentid='$parentid' order by parentid desc");
    while($db1->next_record()){
    $nums=$db1->num_rows();
    $j++;
    $sValue.="\"".$db1->Record["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 
    /*
    调用方法:
    将此代码保存为文件ld2.php
    例如要在write.php页面放一个二级联动,则在write.php页面
    要放置二级联动的地方加一句require_once("ld2.php");
    若write.php要向save.php页面提交数据则在save.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为大类中文名称
    ----------------------------------------------------------- 
    */
    ?>db.inc.php文件的内容
    <?php 
    class hq_online extends db_sql{ 
    var $Host="localhost"; 
    var $Database="hq"; 
    var $User="root"; 
    var $password=""; 
    }