dhtmlxTree目錄樹(shù)增加右鍵菜單以及拖拽排序的實(shí)現(xiàn)方法_PHP教程
推薦:input file獲得文件根目錄簡(jiǎn)單實(shí)現(xiàn)js獲得file根目錄,然后賦值給hidden類(lèi)型input,然后就可以交給php or jsp 處理了,感興趣的朋友可以參考下哈,希望可以幫助到你
在以前的一個(gè)公司內(nèi)部管理系統(tǒng)(InnerOA)中,對(duì)于目錄樹(shù)的構(gòu)造我采用的是dTree,實(shí)現(xiàn)無(wú)限級(jí)目錄顯示及右鍵菜單功能(右鍵菜單中包括:新建、修改、共享、刪除、刷新等功能,如下圖所示)

關(guān)于公司內(nèi)部管理系統(tǒng)(InnerOA)中目錄樹(shù)的一些知識(shí)以后有時(shí)間將整理并提供源碼。
但是dTree唯一遺憾的是不支持拖拽排序功能,這讓我在完成InnerOA之后心里一直糾結(jié)的問(wèn)題。在網(wǎng)上查看關(guān)于目錄樹(shù)的一些內(nèi)容,dTree是我目前認(rèn)為最符合我項(xiàng)目的一個(gè)。在一個(gè)偶然機(jī)會(huì),發(fā)現(xiàn)了另一個(gè)強(qiáng)大的目錄樹(shù),也就是本文所說(shuō)的:dhtmlxTree,支持拖拽功能,然而在源碼中并沒(méi)有找到類(lèi)似DEMO或功能,僅發(fā)現(xiàn)提供一個(gè)啟用拖拽參數(shù),不過(guò),這也讓我決心解決目錄樹(shù)的拖拽排序問(wèn)題,于是花了點(diǎn)時(shí)間研究了一下源碼和結(jié)合dTree項(xiàng)目所總結(jié)的經(jīng)驗(yàn),終于實(shí)現(xiàn)我的需求:可自由拖拽排序、移植dTree的右鍵菜單功能,并實(shí)現(xiàn)在所選目錄上右鍵單擊并彈出菜單,可以當(dāng)前目錄為基礎(chǔ),進(jìn)行如下操作:
1、在該目錄下新建目錄
2、修改當(dāng)前目錄名稱(chēng)
3、刪除當(dāng)前目錄
4、刷新頁(yè)面
5、可增加其它功能,比如“共享”。我在公司內(nèi)部管理系統(tǒng)(InnerOA)中是以windows操作系統(tǒng)的共享為原型,設(shè)置“自讀共享”或“可寫(xiě)共享”,并可指定對(duì)某用戶(或多用戶甚至全部用戶)共享。這樣只有設(shè)定共享的用戶,才可看到共享的內(nèi)容。
由于無(wú)法在線演示,下面用幾個(gè)圖說(shuō)明一下(源碼下載見(jiàn):http://download.csdn.net/detail/zm2714/4544616):
1、可在任意目錄上點(diǎn)擊右鍵,新建目錄

2、可在任意目錄上點(diǎn)擊右鍵,修改當(dāng)前目錄。但根目錄除外。

上圖說(shuō)明:根目錄不可修改,即圖中Books不可修改。此id值為-1。這是一個(gè)特殊ID。標(biāo)志為根目錄。

上圖說(shuō)明:其它任意目錄勻可修改。實(shí)際使用中,是存在數(shù)據(jù)庫(kù)中目錄的ID值。上圖中“目錄ccc”的ID值為3。

上圖說(shuō)明:修改名稱(chēng)后,點(diǎn)擊保存,即可。
3、可拖動(dòng)根目錄之外的任意目錄,拖拽排序。
拖拽排序原理:將欲選擇中目錄拖到其父目錄時(shí),更新他的時(shí)間為當(dāng)前時(shí)間。按時(shí)間DESC排序。這樣將出現(xiàn)在“父目錄”的第一個(gè)。循環(huán)此操作,可以實(shí)現(xiàn)排序功能。
二、代碼實(shí)現(xiàn)
1、引用js文件和樣式文件
<script language="JavaScript" type="text/JavaScript" src="tree/jQuery1.6.2.js"></script>
<script type="text/javascript" src="tree/dhtmlxcommon.js"></script>
<script type="text/javascript" src="tree/dhtmlxtree.js"></script>
<script type="text/javascript" src="tree/jquery.contextmenu.js"></script>
<link rel="STYLESHEET" type="text/css" href="tree/dhtmlxtree.css">
<script language="JavaScript" type="text/JavaScript" src="js/dialog/dialog.js"></script>
2、程序?qū)崿F(xiàn)
<script type="text/javascript">
function showMsg(id,title,icon,str){
art.dialog.through({id:'msg',title:title,icon:icon,drag:false,lock:true,content:str,ok:function(){art.dialog.close();}});
}
function tondrag(id, id2){
alert(id);alert(id2);
return confirm("Do you want to move node " + tree.getItemText(id) + " to item " + tree.getItemText(id2) + "?");
};
$(document).ready(function(){
//$(document).bind("contextmenu",function(){return false;});
//$(document).bind("selectstart",function(){return false;});
tree = new dhtmlXTreeObject("treeboxbox_tree","100%","100%",0);
tree.setSkin('dhx_skyblue');
tree.setImagePath("./tree/imgs/");
//tree.setImageArrays("plus", "open2.gif", "open2.gif", "open2.gif", "open2.gif", "open2.gif");
//tree.setImageArrays("minus", "close2.gif", "close2.gif", "close2.gif", "close2.gif", "close2.gif");
//設(shè)置節(jié)點(diǎn)圖片 setStdImages('無(wú)子目錄時(shí)的圖片','節(jié)點(diǎn)展開(kāi)后的圖片','節(jié)點(diǎn)未展開(kāi)時(shí)的圖片')
tree.setStdImages("folderClosed.gif", "folderOpen.gif", "folderClosed.gif");
tree.enableDragAndDrop(1);//允許拖拽
tree.enableTreeLines(false);
tree.setOnRightClickHandler(function(id){
//var i=tree.getSelectedItemId();
//alert(i);
tree.selectItem(id);
$("#mm").val(id);
});
tree.setDragHandler(function(id,id2){//id為拖拽目錄的ID,id2拖拽終點(diǎn)目錄。將id2做為id的父目錄。
//art.dialog.confirm("Do you want to move node " + tree.getItemText(id) + " to item " + tree.getItemText(id2) + "?",function(){
$.post("tree/move_folder.php",{id1:id,id2:id2},function(tips){
//art.dialog.through({title:'信息',icon:'face-smile',lock:true,content:tips,ok:function(){art.dialog.close();location.reload();}});
});
return true;
/
分享:php筆記之:初探PHPcms模塊開(kāi)發(fā)介紹本篇文章介紹了,PHPcms模塊開(kāi)發(fā)的應(yīng)用。需要的朋友參考下
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁(yè)面代碼執(zhí)行時(shí)間
- PHP中獎(jiǎng)概率的抽獎(jiǎng)算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對(duì)圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問(wèn)控制的和運(yùn)算符優(yōu)先級(jí)介紹
- 關(guān)于PHP語(yǔ)言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國(guó)語(yǔ)言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
PHP教程Rss訂閱編程教程搜索
PHP教程推薦
- 學(xué)習(xí)PHP必備的知識(shí)及工具
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php筆記之:數(shù)據(jù)類(lèi)型與常量的使用分析
- PHP生成圖片縮略圖
- php中g(shù)et_headers函數(shù)的作用及用法的詳細(xì)介紹
- PHP中上傳大體積文件時(shí)需要的設(shè)置
- 獲取php頁(yè)面執(zhí)行時(shí)間,數(shù)據(jù)庫(kù)讀寫(xiě)次數(shù),函數(shù)調(diào)用次數(shù)等(THINKphp)
- 十天學(xué)會(huì)php之第六天
- 解答:如何使用PHP開(kāi)發(fā)高效的WEB系統(tǒng)
- 十天學(xué)會(huì)php之第八天
- 相關(guān)鏈接:
復(fù)制本頁(yè)鏈接| 搜索dhtmlxTree目錄樹(shù)增加右鍵菜單以及拖拽排序的實(shí)現(xiàn)方法
- 教程說(shuō)明:
PHP教程-dhtmlxTree目錄樹(shù)增加右鍵菜單以及拖拽排序的實(shí)現(xiàn)方法
。