博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OrgChart 组织架构与PHP结合使用
阅读量:6406 次
发布时间:2019-06-23

本文共 4120 字,大约阅读时间需要 13 分钟。

一、OrgChart下载地址:

https://github.com/dabeng/OrgChart
二、组织架构的表设计
CREATE TABLE `org_info` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '组织ID',`name` varchar(36) NOT NULL DEFAULT '' COMMENT '组织名称',`content` varchar(256) NOT NULL DEFAULT '' COMMENT '组织内容',`pid` int(11) NOT NULL DEFAULT '0' COMMENT '父级ID',`path` varchar(256) NOT NULL DEFAULT '' COMMENT '父级路径(逗号分割)',PRIMARY KEY (`id`),KEY `path` (`path`)) ENGINE=MyISAM AUTO_INCREMENT=22 DEFAULT CHARSET=utf8 COMMENT='组织信息表';
三、index.html代码如下:
    
当前节点: 部门名称:
子部门 同级部门
四、data.php代码如下:
name = 'xxx有限公司'; $obj->children = $data; echo json_encode($obj);} else if($act == 'orgFrm') { //处理组织表单 $addOrgAct = !empty($_POST['addOrgAct']) ? trim($_POST['addOrgAct']) : ''; //判断表单方法是否为空 if(empty($addOrgAct)) { exit; } //当前节点名 $curNodeName = !empty($_POST['curNodeName']) ? trim($_POST['curNodeName']) : ''; //当前节点ID $curNodeId = !empty($_POST['curNodeId']) ? trim($_POST['curNodeId']) : 0; //组织名称 $orgName = !empty($_POST['orgName']) ? trim($_POST['orgName']) : ''; if($addOrgAct == 'add') { $addOrgType = !empty($_POST['addOrgType']) ? trim($_POST['addOrgType']) : ''; if(empty($orgName)) { exit; } if($addOrgType == 'sib') { //添加兄弟节点 if(empty($curNodeId)) { exit; } //获取兄弟节点的pid和path $sql = "SELECT `pid`,`path` FROM `org_info` WHERE `id`={$curNodeId}"; $ret = mysql_query($sql); $row = mysql_fetch_assoc($ret); $path = $row['path']; $pid = $row['pid']; //添加节点 $sql = "INSERT INTO `org_info`(`name`, `pid`, `path`) VALUES('{$orgName}', {$pid}, '{$path}')"; mysql_query($sql); $nodeId = mysql_insert_id(); if(mysql_affected_rows()) { $obj = new StdClass(); $obj->name = $orgName; $obj->id = $nodeId; echo json_encode($obj); exit; } } else { //添加子节点 //获取当前节点的path $sql = "SELECT `path` FROM `org_info` WHERE `id`={$curNodeId}"; $ret = mysql_query($sql); $row = mysql_fetch_assoc($ret); $path = $row['path']; $path = !empty($path) ? (rtrim($path, ',') . ',' . $curNodeId) : $curNodeId; $pid = $curNodeId; //添加节点 $sql = "INSERT INTO `org_info`(`name`, `pid`, `path`) VALUES('{$orgName}', {$pid}, '{$path}')"; mysql_query($sql); $nodeId = mysql_insert_id(); if(mysql_affected_rows()) { $obj = new StdClass(); $obj->name = $orgName; $obj->id = $nodeId; echo json_encode($obj); exit; } } } else if($addOrgAct == 'del') { //删除所有有父节点中有该节点的子节点 $sql = "DELETE FROM `org_info` WHERE FIND_IN_SET('{$curNodeId}',`path`) OR `id`={$curNodeId}"; mysql_query($sql); if(mysql_affected_rows()) { $obj = new StdClass(); $obj->name = $orgName; $obj->id = $curNodeId; echo json_encode($obj); exit; } } else if($addOrgAct == 'edt') { if(empty($orgName)) { exit; } //更新节点 $sql = "UPDATE `org_info` SET `name`='{$orgName}' WHERE `id`={$curNodeId}"; mysql_query($sql); if(mysql_affected_rows()) { $obj = new StdClass(); $obj->name = $orgName; $obj->id = $curNodeId; echo json_encode($obj); exit; } }}
五、效果如下:
OrgChart 组织架构与PHP结合使用 - 怀素真 - 因上努力 果上随缘

转载于:https://www.cnblogs.com/jkko123/p/6352052.html

你可能感兴趣的文章
rocketmq 消息指定_RocketMQ入坑系列(一)角色介绍及基本使用
查看>>
redis zset转set 反序列化失败_掌握好Redis的数据类型,面试心里有底了
查看>>
p图软件pⅰc_娱乐圈最塑料的夫妻,P图永远只P自己,太精彩了吧!
查看>>
jenkins 手动执行_Jenkins 入门
查看>>
怎么判断冠词用a还是an_葡语干货 | 葡萄牙语冠词用法整理大全
查看>>
js传参不是数字_JS的Reflect学习和应用
查看>>
三个不等_数学一轮复习05,从函数观点看方程与不等式,记住口诀与联系
查看>>
卡尺测量的最小范围_汽车维修工具-测量用具
查看>>
网优5g前景_5G网络优化师前景怎么样?
查看>>
竞态条件的赋值_[译] part25: golang Mutex互斥锁
查看>>
delmatch oracle_完美完全卸载(清除)oracle数据库的方式(方法)
查看>>
pyqt 滚动条 美化_Pyqt5 关于流式布局和滚动条的综合使用示例代码
查看>>
51单机片 编译hex_单片机爬坑记-05-编译环境(完)
查看>>
java 正则表达式 img_Java正则表达式获得html字符串里的<img src=""/> 中的url列表
查看>>
dbutils java_Java篇-DBUtils与连接池
查看>>
java 文件crc校验_一个获取文件crc32校验码的简洁的java类 | 学步园
查看>>
java flatmapfunction_Java8 Stream flatmap中间操作用法解析
查看>>
java rmi spring 4.0_Java Spring RMI一些尝试
查看>>
JAVA怎么连接华为的HDFS系统_JAVA-API操作HDFS文件系统(HDFS核心类FileSystem的使用)...
查看>>
java牛客网四则运算_数据库刷题—牛客网(51-61)
查看>>