zoukankan      html  css  js  c++  java
  • zTree+php动态加载menu

    1.前端代码

    <!DOCTYPE html>
    <html lang="zh-cn">
    <head>
    <title>index.html</title>
    
    <meta charset="utf-8">
    
    <link rel="stylesheet" href="zTree_v3/css/zTreeStyle/zTreeStyle.css">
    <script type="text/javascript" src="zTree_v3/js/jquery-1.4.4.min.js"></script>
    <script type="text/javascript"  src="zTree_v3/js/jquery.ztree.core-3.5.js"></script>
    <style>
    body {
    	background-color: white;
    	margin: 0;
    	padding: 0;
    	text-align: center;
    }
    
    div,p,table,th,td {
    	list-style: none;
    	margin: 0;
    	padding: 0;
    	color: #333;
    	font-size: 12px;
    	font-family: dotum, Verdana, Arial, Helvetica, AppleGothic, sans-serif;
    }
    
    #testIframe {
    	margin-left: 10px;
    }
    </style>
    
    <SCRIPT type="text/javascript">
    	var zTree;
    	var demoIframe;
    	var menuNode;
    	var setting = {
    		view : {
    			dblClickExpand : false,
    			showLine : true,
    			selectedMulti : false
    		},
    		data : {
    			simpleData : {
    				enable : true,
    				idKey : "id",
    				pIdKey : "pId",
    				rootPId : ""
    			}
    		},
    		callback : {
    			beforeClick : function(treeId, treeNode) {
    				var zTree = $.fn.zTree.getZTreeObj("tree");
    				if (treeNode.isParent) {
    					zTree.expandNode(treeNode);
    					return false;
    				} else {
    					demoIframe.attr("src", treeNode.file);
    					return true;
    				}
    			}
    		}
    	};
    
         
    	$(function(){
    		$.post("src/dao/conn.php", function(data){
    			menuNode=$.parseJSON(data);
    			for(var i=0;i<menuNode.length;i++){
    				 menuNode[i].name=decodeURI(menuNode[i].name);
    			}
    			var t = $("#tree");
    			t = $.fn.zTree.init(t, setting, menuNode);
    			demoIframe = $("#testIframe");
    			demoIframe.bind("load", loadReady);
    			console.info(menuNode);
    		});
    	});
    	   
    	function loadReady() {
    		var bodyH = demoIframe.contents().find("body").get(0).scrollHeight, 
    		htmlH = demoIframe.contents().find("html").get(0).scrollHeight,
    		maxH = Math.max(bodyH, htmlH),
    		minH = Math.min(bodyH, htmlH), 
    		h = demoIframe.height() >= maxH ? minH : maxH;
    		if (h < 530)
    			h = 530;
    		demoIframe.height(h);
    	}
    </SCRIPT>
    
    </head>
    
    <body>
    	<TABLE border=0 height=600px align=left>
    		<TR>
    			<TD width=260px align=left valign=top style="BORDER-RIGHT: #999999 1px dashed">
    				<ul id="tree" class="ztree" style="260px; overflow:auto;"></ul>
    			</TD>
    			<TD width=770px align=left valign=top><IFRAME ID="testIframe"
    					Name="testIframe" FRAMEBORDER=0 SCROLLING=AUTO width=100%
    					height=600px SRC="php/1.html"></IFRAME></TD>
    		</TR>
    	</TABLE>
    </body>
    </html>
    

    2.后台conn.php代码

    <?php
    $mysqli  = new  mysqli ( 'localhost' ,  'root' ,  'root' ,  'php' );
    mysqli_query($mysqli, "set names gbk");
    if ( $mysqli -> connect_error ) {
        die(  $mysqli -> connect_errno + $mysqli -> connect_error );
    }
    $sql='select * from menu';
    $res=mysqli_query($mysqli, $sql);
    $array=array();
    while ($row=mysqli_fetch_row($res)){
    	$menu=array(
    		"id"=>$row[1],
    		"pId"=>$row[0],
    		"name"=>urlencode(iconv('gb2312','utf-8',$row[2])),
    		"open"=>$row[3],
    		"file"=>$row[4],	
    	);
    	array_push($array, $menu);
    }
    echo json_encode($array);
    
     $mysqli -> close ();
    	
    ?>

    3.数据库表内容

    mysql> select * from menu;
    +------+-----+---------+------+------------+
    | pId  | id  | name    | open | file       |
    +------+-----+---------+------+------------+
    | NULL |   1 | 最简单        |    0 | NULL       |
    | NULL |   2 | 简单        |    0 | NULL       |
    | NULL |   3 | 超简单        | NULL | NULL       |
    |    2 |  21 | 案例3       | NULL | php/1.html |
    |    1 | 101 | 简单        | NULL | NULL       |
    |    1 | 102 | 案例2       | NULL | php/2.html |
    |  101 | 201 | 案例1       | NULL | php/1.html |
    |    3 | 301 | 超简单1       | NULL | php/1.html |
    +------+-----+---------+------+------------+
    8 rows in set (0.00 sec)

    4.结果


  • 相关阅读:
    递归函数的写法笔记
    Spring项目中执行Java脚本
    关于秒杀的系统架构优化思路
    分布式搜索引擎Elasticsearch性能优化与配置
    分布式搜索引擎ElasticSearch+Kibana (Marvel插件安装详解)
    分布式搜索引擎Elasticsearch的查询与过滤
    Linux 下编译升级 Python
    搭建通过 ssh 访问的 Git 服务器
    分布式搜索引擎Elasticsearch的简单使用
    PHP 源码学习之线程安全
  • 原文地址:https://www.cnblogs.com/whzhaochao/p/5023456.html
Copyright © 2011-2022 走看看