dedecms二次开发:织梦5.6下栏目列表三级联动代码

2015-05-14 13:24 阅读 133 次 评论关闭

测试页面:member/templets/archives_sg_add.htm 
效果:
 

PS:没有什么技术含量,通过自学解决问题而已。

member/archives_sg_add.php添加调用: 
require_once(dirname(__FILE__)."/GetArcTypeList.php"); 

 member/templets/archives_sg_add.htm  在<label>隶属栏目:</label>添加代码: 

           <label>隶属栏目:</label> 
                <?php 
            $typeOpti*****1 = GetOptionListM1(0,$channelid); 
            echo "<select id='one' size='1'>\r\n"; 
            echo "<option value='' selected>请选择栏目...</option>\r\n"; 
            echo $typeOpti*****1; 
            echo "</select>"; 
        ?> //一级栏目 
        <span id="Second"></span> //二级栏目列表 
<span id="Third"></span> //三级栏目列表 

        <span style="color: #f00;">*</span> 

JS代码:

<script language='javascript'> 
function ShowArcType(UpperFloor,TheFloor,Id) 

     var xmlHttp 
    xmlHttp=GetXmlHttpObject() 
    if (xmlHttp==null) 
      { 
      alert ("Browser does not support HTTP Request") 
      return 
      } 
      var url="GetArcTypeList.php"; 
            url=url+"?TheFloor="+TheFloor+"&UpperFloor="+UpperFloor; 
            if (Id==2) 
            { 
                url=url+"&OpObj=Second&sid="+Math.random(); 
            } 
            if (Id==3) 
            { 
                url=url+"&OpObj=Third&sid="+Math.random(); 
            } 
            xmlHttp.onreadystatechange=function(){ stateChanged(xmlHttp,Id); }; 
            xmlHttp.open("GET",url,true); 
            xmlHttp.send(null) 


function stateChanged(obj,Id) 

if (obj.readyState==4 || obj.readyState=="complete") 

     if (Id==2) 
     { 
        document.getElementById("Third").innerHTML="" 
        document.getElementById("Second").innerHTML=obj.resp*****eText 
    } 
    if (Id==3) 
     { 
        document.getElementById("Third").innerHTML=obj.resp*****eText 
    } 



function GetXmlHttpObject() 

var xmlHttp=null; 
try 

// Firefox, Opera 8.0+, Safari 
xmlHttp=new XMLHttpRequest(); 

catch (e) 

// Internet Explorer 
try 
  { 
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); 
  } 
catch (e) 
  { 
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); 
  } 

return xmlHttp; 

</script> 

GetArcTypeList.php代码:

<?php
require_once(dirname(__FILE__)."/config.php");
require_once(DEDEINC."/dedetag.class.php");
require_once(DEDEINC."/userlogin.class.php");
require_once(DEDEINC."/customfields.func.php");
require_once(dirname(__FILE__)."/inc/inc_catalog_opti*****.php");
require_once(dirname(__FILE__)."/inc/inc_archives_functi*****.php");
if (!defined('DEDEMEMBER'))
{
    exit("dedecms");
}
$OpObj=$_GET["OpObj"];
$TheFloor=$_GET["TheFloor"];
$UpperFloor=$_GET["UpperFloor"];

if ($OpObj=="Second")
    {
        global $OptionArrayListM2,$dsql;
        $OptionArrayListM2 = "";
        if ($TheFloor!="" and $UpperFloor!="")
        {
            $dsql->SetQuery("SELECT * FROM `#@__arctype` where topid=".$UpperFloor." and reid=".$TheFloor." order by sortrank asc");
            $dsql->Execute();
            $row = "";            
            if ($dsql->GetTotalRow()>0)
            {
                $OptionArrayListM2 .= "<select id='two' size='1' onchange='ShowArcType(".$TheFloor.",this.value,3)'>\r\n";
                $OptionArrayListM2 .= "<option value='' selected>请选择...</option>\r\n";
                while($row = $dsql->GetObject())
                {
                $OptionArrayListM2 .= "<option value='".$row->id."' class='option3'>".$row->typename."</option>\r\n";
                }
                $OptionArrayListM2 .= "</select>";
            }
            else
                $OptionArrayListM2 = "";
        }
        else
            $OptionArrayListM2 = "";
        echo $OptionArrayListM2;
    }
else if ($OpObj=="Third")
    {
        global $OptionArrayListM3,$dsql;
        $OptionArrayListM3 = "";
        if ($TheFloor!="" and $UpperFloor!="")
        {
            $dsql->SetQuery("SELECT * FROM `#@__arctype` where topid=".$UpperFloor." and reid=".$TheFloor." order by sortrank asc");
            $dsql->Execute();
            $row = "";            
            if ($dsql->GetTotalRow()>0)
            {
                $OptionArrayListM3 .= "<select id='three' size='1'>\r\n";
                $OptionArrayListM3 .= "<option value='' selected>请选择...</option>\r\n";
                while($row = $dsql->GetObject())
                {
                $OptionArrayListM3 .= "<option value='".$row->id."' class='option3'>".$row->typename."</option>\r\n";
                }
                $OptionArrayListM3 .= "</select>";
            }
            else
            $OptionArrayListM3 = "";
        }
        else
            $OptionArrayListM3 = "";
        echo $OptionArrayListM3;
    }

function GetOptionListM1($topid=0,$channeltype=0)//查询指定频道的一级栏目,根据GetOptionListM()仿写的。
{
    global $OptionArrayListM1,$dsql;
    $dsql->SetQuery("SELECT * FROM `#@__arctype` where topid=".$topid." and channeltype=".$channeltype."");
    $dsql->Execute();
    $OptionArrayListM1 = "";
    $row="";
    //$OptionArrayListM2 .= "<select size='1' onchange='ShowArcType(this.value,this.value,'Second')'>\r\n";
    while($row = $dsql->GetObject())
    {
    $OptionArrayListM1 .= "<option value='".$row->id."' class='option3'{$selected}>".$row->typename."</option>\r\n";
    }
    //$OptionArrayListM2 .= "</select>";
    return $OptionArrayListM1;
}
?> 

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:dedecms二次开发:织梦5.6下栏目列表三级联动代码 | 猎微网

评论已关闭!